C# 不能';不要使用gmail帐户在asp.net中发送电子邮件
我们可以使用gmail帐户从*localhost*(本地计算机)在asp.net网站上发送电子邮件吗?我正在努力,但没有成功。它在主机上工作正常,但在我的机器上不工作 我的机器上安装了windows server 2003,在例外情况下,我在防火墙中添加了端口587和465。在我的gmail帐户中,我还启用了POP和IMAP。一些人建议使用端口465,另一些人说应该使用端口587。我尝试了这两种方法,结果如下:C# 不能';不要使用gmail帐户在asp.net中发送电子邮件,c#,asp.net,.net-3.5,gmail,C#,Asp.net,.net 3.5,Gmail,我们可以使用gmail帐户从*localhost*(本地计算机)在asp.net网站上发送电子邮件吗?我正在努力,但没有成功。它在主机上工作正常,但在我的机器上不工作 我的机器上安装了windows server 2003,在例外情况下,我在防火墙中添加了端口587和465。在我的gmail帐户中,我还启用了POP和IMAP。一些人建议使用端口465,另一些人说应该使用端口587。我尝试了这两种方法,结果如下: 使用端口465需要时间,最后给出操作超时的消息。失败 使用端口587它不需要时间,显
public static bool SendMail(string gMailAccount, string password, string to, string subject, string message)
{
try
{
NetworkCredential loginInfo = new NetworkCredential(gMailAccount, password);
MailMessage msg = new MailMessage();
msg.From = new MailAddress(gMailAccount);
msg.To.Add(new MailAddress(to));
msg.Subject = subject;
msg.Body = message;
msg.IsBodyHtml = true;
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = loginInfo;
client.Port = 587;
client.Send(msg);
return true;
}
catch (Exception e)
{
return false;
}
}
我使用smtp.yandex.com。您可能需要更改gmail帐户的设置。请尝试以下步骤:添加:
client.DeliveryMethod = SmtpDeliveryMethod.Network;
如果这没有帮助,您的邮件地址可能不完整,请使用
var fromAddress = new MailAddress("from@gmail.com", "From Name");
在凭证的使用上
Credentials = new NetworkCredential(fromAddress.Address, ....
希望对我有所帮助这个SmtpClient一直为我工作:
new SmtpClient
{
Host = "smtp.gmail.com",
Port = 587,
EnableSsl = true,
UseDefaultCredentials = false,
Credentials = new NetworkCredential("noreply@my_domain.com", "password")
};
和你的一样
您是否可以通过其他应用程序通过587端口与smtp.gmail.com联系?可能是那个端口的Telnet?我认为这可能是一个网络问题,尽管你确实说你的防火墙是完全开放的,但这不是你和谷歌之间的唯一一次跳跃。Mikhail我应该在我的gmail帐户中更改什么设置?我不知道。看见