我正在尝试使用下面的代码和配置从ASP.Net通过GMail发送电子邮件。不幸的是,它似乎没有工作,它也没有抛出错误信息。服务器日志或邮件IIS邮件文件夹中没有任何内容,我甚至检查了来自地址的垃圾箱,看看邮件是否在那里结束。任何帮助都会非常感激。
C#部分
public void SendFeedback()
{
string emailFrom = this.Email.Text;
MailMessage message = new MailMessage();
// here is an important part:
message.From = new MailAddress(emailFrom, "Mailer");
// it's superfluous part here since from address is defined in .config file
// in my example. But since you don't use .config file, you will need it.
message.Subject = "www.gumpshen.com - Website Query";
message.IsBodyHtml = true;
message.Body = string.Format(" Name = {0}, Phone = {1}", Name.Text, Phone.Text);
message.Body += Environment.NewLine;
message.Body += Environment.NewLine;
message.Body += ProjectDetails.Text; ;
var client = new SmtpClient();
try
{
client.Send(message);
这是配置部分:
<system.net>
<mailSettings>
<smtp from="myEmail@gmail.com" deliveryMethod="Network" >
<network host="smtp.gmail.com" port="587"
userName="myEmail@gmail.com" password="myPassword"/>
</smtp>
</mailSettings>
</system.net>
答案 0 :(得分:12)
您需要client.EnableSsl=true;
检查此网站的代码:Email via Gmail
以下是如何使用您的Google帐户从ASP.NET页面发送HTML电子邮件的示例。 (此设置可以轻松用于通过需要身份验证的任何其他SMTP服务器发送邮件)。 注意:代码段假设您在页面上有一个名为lblMsg的Label组件将显示 发送电子邮件的用户的成功/失败消息。 (但这很容易改变)。
SmtpClient client = new SmtpClient(); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.Host = "smtp.gmail.com"; client.Port = 587; // setup Smtp authentication System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("your_account@gmail.com", "yourpassword"); client.UseDefaultCredentials = false; client.Credentials = credentials; MailMessage msg = new MailMessage(); msg.From = new MailAddress("your_account@gmail.com"); msg.To.Add(new MailAddress("destination_address@someserver.com")); msg.Subject = "This is a test Email subject"; msg.IsBodyHtml = true; msg.Body = string.Format("<html><head></head><body><b>Test HTML Email</b></body>"); try { client.Send(msg); lblMsg.Text = "Your message has been successfully sent."; } catch (Exception ex) { lblMsg.ForeColor = Color.Red; lblMsg.Text = "Error occured while sending your message." + ex.Message; }