使用 Mailkit (c#) 发送邮件的问题
Issue with sending mails using Mailkit (c#)
我是 Mailkit/Mimekit
的新手,正在从 Easymail 迁移。
下面的代码给出了一条错误消息说
Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
这是我使用 Try Catch 语句的情况,如果我删除 Try Catch,它会给我输出
2.0.0 Ok: queued as 3rdP7Y5ZrzzJp60
这是预期的输出,因为我的 SMTP 服务器很好。
为什么会这样?我只是想捕获服务器没有响应的错误
string ReturnEmail = "returnpath@xxxxxxx";
string ReturnName = "Return xxxxxxx";
string FromEmail = "xxxxxxx@xxxxxxx.com";
string FromName = "xxxxxxx";
string SenderEmail = "xxxxxxx@xxxxxxx.com";
string SenderName = "xxxxxxx";
string TextBody = @"Text Body";
string HtmlBody = string.Format(@"HTML Body");
string Subject = "Retrouvez-nous à la e à l’occasion de la Coupe du Monde de Combiné Nordique";
string ToName = "XXX";
string ToEmail = "XX@XXX.com";
string MailServer = "XX.XXX.XX.XXX";
int Result = 0;
var message = new MimeMessage();
MailboxAddress RecepientAddress = new MailboxAddress(ToName, ToEmail);
message.From.Add(new MailboxAddress(FromName, FromEmail));
var builder = new BodyBuilder();
builder.TextBody = TextBody;
builder.HtmlBody = HtmlBody;
List<MailboxAddress> To = new List<MailboxAddress>();
To.Add(RecepientAddress);
message.Subject = Subject;
message.Body = builder.ToMessageBody();
message.Sender = new MailboxAddress(SenderName, SenderEmail); // Sender Address
message.To.Add (RecepientAddress);
var client = new SmtpClient( new ProtocolLogger("smtp.txt") ); // logging SMTP connections
client.Timeout = 20;
// client.Connect(MailServer, 25);
try
{
client.Connect(MailServer, 25);
}
catch (SmtpCommandException ex)
{
Console.WriteLine("Error trying to connect: {0}", ex.Message);
Console.WriteLine("\tStatusCode: {0}", ex.StatusCode);
}
catch (SmtpProtocolException ex)
{
Console.WriteLine("Protocol error while trying to connect: {0}", ex.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
删除这一行:
client.Timeout = 20;
我是 Mailkit/Mimekit
的新手,正在从 Easymail 迁移。
下面的代码给出了一条错误消息说
Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
这是我使用 Try Catch 语句的情况,如果我删除 Try Catch,它会给我输出
2.0.0 Ok: queued as 3rdP7Y5ZrzzJp60
这是预期的输出,因为我的 SMTP 服务器很好。 为什么会这样?我只是想捕获服务器没有响应的错误
string ReturnEmail = "returnpath@xxxxxxx";
string ReturnName = "Return xxxxxxx";
string FromEmail = "xxxxxxx@xxxxxxx.com";
string FromName = "xxxxxxx";
string SenderEmail = "xxxxxxx@xxxxxxx.com";
string SenderName = "xxxxxxx";
string TextBody = @"Text Body";
string HtmlBody = string.Format(@"HTML Body");
string Subject = "Retrouvez-nous à la e à l’occasion de la Coupe du Monde de Combiné Nordique";
string ToName = "XXX";
string ToEmail = "XX@XXX.com";
string MailServer = "XX.XXX.XX.XXX";
int Result = 0;
var message = new MimeMessage();
MailboxAddress RecepientAddress = new MailboxAddress(ToName, ToEmail);
message.From.Add(new MailboxAddress(FromName, FromEmail));
var builder = new BodyBuilder();
builder.TextBody = TextBody;
builder.HtmlBody = HtmlBody;
List<MailboxAddress> To = new List<MailboxAddress>();
To.Add(RecepientAddress);
message.Subject = Subject;
message.Body = builder.ToMessageBody();
message.Sender = new MailboxAddress(SenderName, SenderEmail); // Sender Address
message.To.Add (RecepientAddress);
var client = new SmtpClient( new ProtocolLogger("smtp.txt") ); // logging SMTP connections
client.Timeout = 20;
// client.Connect(MailServer, 25);
try
{
client.Connect(MailServer, 25);
}
catch (SmtpCommandException ex)
{
Console.WriteLine("Error trying to connect: {0}", ex.Message);
Console.WriteLine("\tStatusCode: {0}", ex.StatusCode);
}
catch (SmtpProtocolException ex)
{
Console.WriteLine("Protocol error while trying to connect: {0}", ex.Message);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
删除这一行:
client.Timeout = 20;