asp.net - 通过gmail发送Asp.Net电子邮件

标签 asp.net email iis smtp gmail

我正在尝试使用下面的代码和配置从ASP.Net通过GMail发送电子邮件。不幸的是,它似乎不起作用,也没有抛出错误消息。服务器日志或邮件IIS邮件文件夹中没有任何内容,我什至检查了发件人地址的废纸trash,以查看邮件是否在那里结束。任何帮助将非常感激。

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>

最佳答案

您需要client.EnableSsl=true;
从此站点检查代码:Email via Gmail

Here is an example on how to send HTML email from your ASP.NET page using your Google account. (This setup can be easily used to send messages via any other SMTP server that requires authentication). Note: the code snippet assumes you have a Label component on Page with named lblMsg that will show success/failure message to the user that is sending email. (But this can be easily changed).

   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;
   }

关于asp.net - 通过gmail发送Asp.Net电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559011/

相关文章:

c# - 增加 ReportViewer axd 处理程序的超时

javascript - 是否可以/推荐发送包含 Javascript 的 HTML 电子邮件?

javascript - 检索 Ajax 发送给 Node JS 的参数

javascript - 如何删除 javascript src's if @media (min-width :xxx px) {

javascript - jQuery .val() 没有选取innerText 的值

c# - 在数据库中插入记录时连接必须有效且打开

email - SSIS-发送带有失败任务名称的邮件

电子邮件上的 css/padding

c# - IIS 回收时运行的任务会发生什么

iis - 如何使用 IIS7 APPCMD 按 ID 引用站点?