我正在尝试非常简单的教程,如何通过.NET
和发送电子邮件C#
.但是,当我尝试执行代码时,我得到以下异常:
System.dll中发生未处理的"System.Net.Mail.SmtpException"类型的异常附加信息:操作已超时.
所以我所做的就是找到我想将邮件发送到的服务器设置.这在我的国家很受欢迎:
Incoming settings
Protocol -> POP
Email address -> username@abv.bg
Username -> username@abv.bg
Password -> password
POP server -> pop3.abv.bg
Security type -> SSL
Server port -> 995
Outgoing server settings
Username -> username@abv.bg
Password -> password
SMTP server -> smtp.abv.bg
Security type -> SSL
Server port -> 465
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个Console project
在我的主方法中我有这个代码:
SmtpClient client = new SmtpClient("smtp.abv.bg");
client.Port = 465;
client.EnableSsl = true;
client.Timeout = 100000;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(
"username@abv.bg", "password");
MailMessage msg = new MailMessage();
msg.To.Add("username@abv.bg");
msg.From = new MailAddress("username@abv.bg");
msg.Subject = "Test subject";
msg.Body = "Test test test...";
client.Send(msg);
Run Code Online (Sandbox Code Playgroud)
由于我没有这方面的经验,我只是尝试你看到的代码.无需任何其他设置.我认为唯一不应该是问题,但我认为值得一提:
client.Credentials = new NetworkCredential(
"username@abv.bg", "password");
Run Code Online (Sandbox Code Playgroud)
和这里:
msg.To.Add("username@abv.bg");
Run Code Online (Sandbox Code Playgroud)
我正在使用相同的电子邮件.但我认为这应该不是问题.知道我在这里做错了什么吗?
这是我多年前写的一个用于测试的工作示例(使用Gmail).
public void sendEmail(string body)
{
if (String.IsNullOrEmpty(email))
return;
try
{
MailMessage mail = new MailMessage();
mail.To.Add(email);
mail.To.Add("xxx@gmail.com");
mail.From = new MailAddress("yyy@gmail.com");
mail.Subject = "sub";
mail.Body = body;
mail.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com"; //Or Your SMTP Server Address
smtp.Credentials = new System.Net.NetworkCredential
("yyy@gmail.com", "pw"); // ***use valid credentials***
smtp.Port = 587;
//Or your Smtp Email ID and Password
smtp.EnableSsl = true;
smtp.Send(mail);
}
catch (Exception ex)
{
print("Exception in sendEmail:" + ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
我会尝试使用Gmail这个功能,以消除网络相关的问题,如防火墙.当它工作时,剩下的就是为SMPT服务器找到合适的settigs