我有以下代码导致'未指定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);
答案 0 :(得分:2)
因为您尚未指定smtpClient.Host属性。
答案 1 :(得分:1)
您似乎没有定义要发送的服务器,除非您已在应用程序配置中完成此操作。
<system.net>
<mailSettings>
<smtp>
<network host="127.0.0.1" port="25"/>
</smtp>
</mailSettings>
</system.net>
您需要指定您的设置,而不是我在上面示例中使用的本地设置。
答案 2 :(得分:1)
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>
答案 3 :(得分:0)
您是否在web.config中添加了mailSettings?请查看Scott的以下链接。
http://weblogs.asp.net/scottgu/archive/2005/12/10/432854.aspx
答案 4 :(得分:0)
在发送消息之前启用SSL
smtpClient.EnableSsl=true;