我正在使用C#.NET 4.0,并希望向主题和正文的地址发送电子邮件,正文将包含我应用程序中几个文本框中的一些信息。
我几乎没有使用C#发送电子邮件的经验,所以我们将不胜感激。我所知道的是你必须使用System.Net.Mail命名空间。我尝试了这段代码,但它给出了“发送邮件失败”的例外情况。
new SmtpClient("smtp.server.com", 25).Send("test@hotmail.com",
"test@gmail.com",
"subject",
"body");
上述代码有什么问题?此外,有没有更好的方式发送电子邮件?
答案 0 :(得分:16)
您的身份验证(凭据)或服务器名称/端口可能不正确。
试试这个:
MailMessage mailMsg = new MailMessage();
mailMsg.To.Add("test@hotmail.com");
// From
MailAddress mailAddress = new MailAddress("you@hotmail.com");
mailMsg.From = mailAddress;
// Subject and Body
mailMsg.Subject = "subject";
mailMsg.Body = "body";
// Init SmtpClient and send on port 587 in my case. (Usual=port25)
SmtpClient smtpClient = new SmtpClient("mailserver", 587);
System.Net.NetworkCredential credentials =
new System.Net.NetworkCredential("username", "password");
smtpClient.Credentials = credentials;
smtpClient.Send(mailMsg);
答案 1 :(得分:8)
你不能留下这个字符串:
smtp.server.com
你应该有你的smtp服务器的名称,通常是mail.yourcompanyname.com或smtp.yourcompanyname.com
答案 2 :(得分:2)
smtp.server.com真的是一个SMTP服务器吗?你需要用真实的替换它。您的ISP可能会为您提供一个,但它可能只会转发来自您的ISP所拥有的地址的电子邮件。
答案 3 :(得分:1)
我曾与三家知名ISP合作主持我的客户网站。所有三个ISP都指示我使用“localhost”作为smtp服务器名称。
答案 4 :(得分:0)
添加:
SmtpServer.EnableSsl = true;