使用ASP.Net和Gmail SMTP发送电子邮件
我正在开发一个ASP.Net网站。使用ASP.Net和Gmail SMTP发送电子邮件,asp.net,email,smtp,gmail,Asp.net,Email,Smtp,Gmail,我正在开发一个ASP.Net网站。 我的一个ASPX页面包含一个按钮。 单击此按钮时,我想使用Gmail SMTP服务器发送电子邮件。 我想使用我的Gmail帐户作为凭据 以下是按钮的单击事件处理程序: protected void m_myButton_Click(object p_sender, EventArgs p_args) { string l_subject = "My subject"; StringBuilder l_builder = new StringB
我的一个ASPX页面包含一个按钮。
单击此按钮时,我想使用Gmail SMTP服务器发送电子邮件。
我想使用我的Gmail帐户作为凭据 以下是按钮的单击事件处理程序:
protected void m_myButton_Click(object p_sender, EventArgs p_args)
{
string l_subject = "My subject";
StringBuilder l_builder = new StringBuilder();
// ...
string l_body = l_builder.ToString();
string l_host = ConfigurationManager.AppSettings["SmtpHost"];
int l_port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]);
NameValueCollection l_smtpAccount = (NameValueCollection)ConfigurationManager.GetSection("smtpAccount");
string l_address = l_smtpAccount["SmtpAddress"];
string l_password = l_smtpAccount["SmtpPassword"];
MailMessage l_mail = new MailMessage();
l_mail.From = new MailAddress(l_address);
l_mail.To.Add(l_address);
l_mail.Subject = l_subject;
l_mail.Body = l_body;
SmtpClient l_smtp = new SmtpClient();
l_smtp.Host = l_host; // l_host = "smtp.gmail.com"
l_smtp.Port = l_port; // l_port = 587
l_smtp.EnableSsl = true;
l_smtp.UseDefaultCredentials = false;
l_smtp.Credentials = new NetworkCredential(l_address, l_password);
l_smtp.Send(l_mail);
}
命令行l\u smtp.Send(l\u mail)失败。引发SMTP异常,InnerException属性通知我(从法语到英语的翻译):由于目标计算机已拒绝连接,因此未建立任何连接173.194.67.108:587 我的代码基于此页面上的代码: 任何帮助都将不胜感激试试这个
protected void Button1_Click(object sender, EventArgs e)
{
MailMessage mail = new MailMessage();
mail.To.Add("Email ID where email is to be send");
mail.To.Add("Another Email ID where you wanna send same email");
mail.From = new MailAddress("YourGmailID@gmail.com");
mail.Subject = "Email using Gmail";
string Body = "Hi, this mail is to test sending mail"+
"using Gmail in ASP.NET";
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
("YourUserName@gmail.com","YourGmailPassword");
//Or your Smtp Email ID and Password
smtp.EnableSsl = true;
smtp.Send(mail);
}
未建立连接,因为目标计算机拒绝了它
73.194.67.108:587
尝试另一个SMTP端口:
465
我已经按照Rup的建议关闭了防病毒程序,并且没有任何异常。我将在防病毒程序中创建一个自定义规则,以允许我的ASP.Net网站和Gmail SMTP服务器之间进行通信。您能否从ASP.Net代码之外的计算机连接到该服务器和端口?e、 g.
telnet smtp.gmail.com 587
或使用putty-raw smtp.gmail.com 587
。它在这里对我有效(尽管我不尝试SSL)1。凭据-您不应使用电子邮件作为登录。我是说如果你的电子邮件是“mymail@gmail.com-您的Credentail登录名应为“mymail”,而不是mymail@gmail.com" 2. l_mail.To.Add(new MailAddress(l_address))@Rup我试图使用telnet连接到smtp.gmail.com,但收到错误消息:连接被拒绝。我指定587作为端口号,raw作为协议。我没有尝试使用telnet进行连接,因为它不会通知成功或失败的连接。@AlexOvechkin我已经听从了你的两个建议,但我仍然收到了一封电子邮件exception@user1139666如果连接成功,您将从Google服务器收到一条消息,例如220 mx.Google.com ESMTP gy2sm28975989wib.3-gsmtp
如果您不这样做,它将超时。465端口工作吗?端口25?这台机器上有出站防火墙吗?你能暂时关闭防火墙吗?谷歌可能会阻止你的子网-你能从别处试试吗?我遇到了另一个异常,通知我超时,没有指定端口号。这正常吗?如果你想要,你可以将端口号包括为smtp。端口=587;我试过465端口,然后是587端口。第一次超时。第二个错误。但是使用25作为端口工作得非常好!还必须删除smtp.UseDefaultCredentials=false;