我有以下代码导致"未指定SMTP主机"你知道为什么会这样吗?非常感谢
var mailMessage = new System.Net.Mail.MailMessage();
mailMessage.To.Add(new MailAddress("myemail@hotmail.co.uk"));
mailMessage.From = new MailAddress("atest@test.com");
mailMessage.Subject = "my test subject";
mailMessage.Body = "my test body";
mailMessage.IsBodyHtml = true;
var smtpClient = new SmtpClient { EnableSsl = true };
object userState = mailMessage;
smtpClient.Send(mailMessage);
我现在已经尝试了以下操作,但它仍然无法通过
var client = new SmtpClient("smtp.gmail.com", 587)
{
Credentials = new NetworkCredential("me@gmail.com", "password"),
EnableSsl = true,
DeliveryMethod = SmtpDeliveryMethod.Network,
UseDefaultCredentials = false
};
var mail = new MailMessage("test@example.com", "me@gmail.com", "hello", "there");
mail.Body = "Hello";
mail.Subject = "hi";
client.Send(mail);
因为您没有指定smtpClient.Host属性。
您似乎没有定义要发送的服务器,除非您在应用程序配置中这样做。
<system.net>
<mailSettings>
<smtp>
<network host="127.0.0.1" port="25"/>
</smtp>
</mailSettings>
</system.net>
您需要指定您的设置,而不是我在上面的示例中使用的本地设置。
var client = new SmtpClient(smtpServer, 25)
{
Credentials = new NetworkCredential(userName, password),
EnableSsl = false
};
MailMessage mail = new MailMessage(sender, receiver, head, body);
client.Send(mail);
您应该指定您的Smtp服务器,如上所示。
或者您可以在web.config文件中指定它。
<mailSettings>
<smtp>
<network
host="server"
port="portNumber"
userName="username"
password="password" />
</smtp>
</mailSettings>
是否在web.config中添加了mailSettings?请查看Scott的以下链接。
http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx
在发送消息之前启用SSL
smtpClient.EnableSsl=true;