我在codebehind aspx页面中编写了以下代码来发送电子邮件。我想使用google smtp服务器。但有些我没有收到邮件
protected void btnSubmit_Click(object sender, EventArgs e)
{
// Sender e-mail address.
MailAddress From = new MailAddress(txtFrom.Text);
// Recipient e-mail address.
MailAddress To = new MailAddress(txtTo.Text);
MailMessage Msg = new MailMessage(From,To);
Msg.Subject = txtSubject.Text;
Msg.Body = txtBody.Text;
// your remote SMTP server IP.
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Credentials = new System.Net.NetworkCredential
("*******@gmail.com", "**********");
client.EnableSsl = true;
client.Port = 465;
client.Send(Msg);
client.Dispose();
}
我做错了什么?请帮忙
答案 0 :(得分:1)
以下是 SmtpClient 对象需要执行的操作:
SmtpClient client = new SmtpClient();
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.EnableSsl = true;
client.Host = "smtp.gmail.com";
client.Port = 587;
client.Credentials = new System.Net.NetworkCredential("xxxx@gmail.com", "xxxx");
答案 1 :(得分:0)
Gmail使用OAuth 2.0,您可能必须提供某种API密钥才能访问其邮件功能。
使用IMAP访问邮件并使用SMTP发送邮件通常使用现有的IMAP和SMTP库来完成,以方便使用。只要这些库支持简单身份验证和安全层(SASL),它们就应该与Gmail支持的SASL XOAUTH2机制兼容。
除了SASL XOAUTH2协议文档之外,您可能还需要阅读使用OAuth 2.0访问Google API以获取有关实施OAuth 2.0客户端的更多信息。
“库和示例”页面使用带有IMAP或SMTP的SASL XOAUTH2机制提供各种流行语言的代码示例。 (source)
答案 2 :(得分:0)
这是一个通用的电子邮件程序。
适用于Port = 25。
记住gmail是一个IMAP服务器。
try
{
MailMessage msg = new MailMessage ();
MailAddress fromAdd = new MailAddress("fromemail@email.com");
msg.[To].Add("toemail@email.com");
msg.Subject = "Choose Session Members";
msg.From = fromAdd;
msg .IsBodyHtml = true;
msg.Priority = MailPriority.Normal;
msg .BodyEncoding = Encoding.Default;
msg.Body = "<center><table><tr><td><h1>Your Message</h1><br/><br/></td></tr>";
msg.Body = msg.Body + "</table></center>";
SmtpClient smtpClient = new SmtpClient ("smtp.yourserver.com", "25");
smtpClient.EnableSsl = true;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential("yourname@yourserver.com", "password");
smtpClient .DeliveryMethod = SmtpDeliveryMethod.Network;
smtpClient.Send(msg);
smtpClient.Dispose();
}
答案 3 :(得分:0)
首先,你检查了网络邮件吗?在发送文件夹中?很多年前我遇到了同样的问题,但我意识到我的防火墙阻止了我。
其他事,
“SmtpClient类不支持隐式SSL。它支持显式SSL,这需要通过端口25与SMTP服务器进行不安全的连接,以便协商传输级别安全性(TLS)。”
http://blog.ramsoftsolutions.com/2015/04/sending-mail-via-smtp-over-implicit-ssl.html
来源:
How can I send emails through SSL SMTP with the .NET Framework?
此致