3 回答

TA貢獻(xiàn)1852條經(jīng)驗(yàn) 獲得超1個(gè)贊
我認(rèn)為問題在于隱式 SSL。
System.Net.Mail
僅支持“顯式”SSL,如此處所述:
通常這是由慣例支配的。在端口 25(正常情況)上運(yùn)行的 SMTP 使用顯式 SSL。在端口 465 上運(yùn)行的 SMTPS 使用隱式 SSL。在端口 587 上運(yùn)行的郵件提交使用顯式 SSL。
25
如果允許顯式 SSL,您可以嘗試使用端口。

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊
這可能是題外話,但我想建議你使用
https://github.com/jstedfast/MailKit
而不是自己創(chuàng)建 smtp 客戶端,這是來自https://www.infoq.com/news/2017/04/MailKit-MimeKit-Official的原因。
SmtpClient 的主要問題是它有一個(gè)令人困惑的連接生命周期。連接到 SMTP 服務(wù)器可能很耗時(shí),尤其是在啟用身份驗(yàn)證的情況下,因此每個(gè) SmtpClient 對(duì)象都有一個(gè)內(nèi)部連接池。

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超4個(gè)贊
試試下面的代碼。
private async Task<bool> SendEmail(string Email, string Message)
{
try
{
SmtpClient client = new SmtpClient("www.test.com");
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("abc@test.com", "password");
MailMessage mailMessage = new MailMessage();
mailMessage.From = new MailAddress("test@from.com");
mailMessage.To.Add(Email);
mailMessage.Body = Message;
mailMessage.Subject = "abc";
await client.SendMailAsync(mailMessage);
return true;
}
catch (Exception ex)
{
return false;
}
}
- 3 回答
- 0 關(guān)注
- 269 瀏覽
添加回答
舉報(bào)