У нас есть программа, которая отправляет электронное письмо для утверждения и извлечения ответа с использованием SSE.
На локальном компьютере программа работает, ошибки не обнаружено.Однако, когда программа публикуется на нашем сервере, мы испытываем некоторое исключение SockectException с собственным кодом ошибки 10060
Сообщение об ошибке
Мы используем SSE для проверки всехВходящие с использованием этого кода
public class MailRepository
{
private readonly string mailServer, login, password;
private readonly int port;
private readonly bool ssl;
public MailRepository(string mailServer, int port, bool ssl, string login, string password)
{
this.mailServer = mailServer;
this.port = port;
this.ssl = ssl;
this.login = login;
this.password = password;
}
public IEnumerable<IMessage> GetAllMails()
{
var messages = new List<IMessage>();
using (var client = new ImapClient())
{
client.Connect(mailServer, port, ssl);
// Note: since we don't have an OAuth2 token, disable
// the XOAUTH2 authentication mechanism.
client.AuthenticationMechanisms.Remove("XOAUTH2");
client.Authenticate(login, password);
// The Inbox folder is always available on all IMAP servers...
var inbox = client.Inbox;
inbox.Open(FolderAccess.ReadOnly);
var results = inbox.Search(SearchOptions.All, SearchQuery.All);
foreach (var uniqueId in results.UniqueIds)
{
var message = inbox.GetMessage(uniqueId);
var sender = message.From.FirstOrDefault();
messages.Add(new IMessage() {
htmlBody = message.HtmlBody,
body = message.TextBody,
subject = message.Subject,
sender = sender == null ? "": (sender as MailboxAddress).Address,
messageID = uniqueId
});
//Mark message as read
//inbox.AddFlags(uniqueId, MessageFlags.Seen, true);
}
client.Disconnect(true);
}
return messages;
}
}
Использование:
var mail = new MailRepository("imap.gmail.com", 993, true, ConfigurationManager.AppSettings["approvalEmail"], "passwordhere")
И программа также отправляет электронную почту
public string SendContract()
{
//var img = Regex.Match(Request["orderscontent"], @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
email mail = new email();
mail.server = new SmtpClient("smtp.gmail.com");
mail.server.Port = 587;
mail.server.EnableSsl = true;
mail.server.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["approvalEmail"], "passwordhere");
//mail.server.Timeout = 10000;
mail.From = new MailAddress(ConfigurationManager.AppSettings["approvalEmail"]);
mail.To.Add(Request["email"]);
mail.Subject = "DO Copy";
mail.IsBodyHtml = true;
mail.Attachments.Add(
new Attachment(
new MemoryStream(Convert.FromBase64String(Request["orderscontent"])),
string.Format("DO_copy_{0:MMddyyyyHHmm}.pdf", DateTime.Now)
)
);
mail.Send();
return "Sent!";
}
Обе программы возвращают Сообщение об ошибке .Но мы замечаем, что при входе на сервер программа работает.Но когда сервер выходит из системы, он возвращает ошибку, поэтому я не уверен, что проблема в сервере или в коде.