【问题标题】:sending mail failure in asp.net using c# [duplicate]使用c#在asp.net中发送邮件失败[重复]
【发布时间】:2012-11-09 09:46:11
【问题描述】:

可能重复:
Sending email in .NET through Gmail

这个邮件代码在本地主机上工作,即在我的电脑上,但是当我把它上传到服务器上时它不工作。 错误是:发送邮件失败。请告诉我问题出在哪里。

 if (Session["userinfo"] != null)
     {

         lblTest.Text = Session["userinfo"].ToString();
         MailMessage msg = new MailMessage();
         msg.From = new MailAddress("shop.bcharya@gmail.com");
         msg.To.Add(new MailAddress("bcc@dr.com"));
         msg.To.Add(new MailAddress("info@yzentech.com"));
         msg.Subject = "Mail from BcharyaCorporation.online shopping site";
         msg.Body = ""+lblTest.Text+"  wants to buy some products. please contact with him/her";
         SmtpClient sc = new SmtpClient();
         sc.Host = "smtp.gmail.com";
         // sc.Port = 25;
         sc.Credentials = new NetworkCredential("shop.bcharya@gmail.com", "mypassword");
         sc.EnableSsl = true;
         try
         {
             sc.Send(msg);
             lblPayment.Text = "Sorry. Currently we are out of online payment service. We will contact you for payment process. Thank you for buying this product.";

         }
         catch (Exception ex)
         {
             lblPayment.Text=ex.Message.ToString();
             Response.Write(ex.Message);
         }

     }

【问题讨论】:

  • 你能提供你得到的异常的细节吗?
  • 那里没有显示其他错误详细信息,仅显示发送邮件失败。我在 catch 块中编写代码请查看编辑@ryadavilli
  • 我的意思是你能检查异常类型、内部异常等......这应该让你知道出了什么问题。

标签: c# asp.net sendmail


【解决方案1】:

对于 gmail 邮件设置也添加端口号

sc.Port = 587;

在这行之后

sc.Host = "smtp.gmail.com";

【讨论】:

  • 等待等待。邮件仅在 gmail 中发送,而不在其他邮件中发送错误是: SMTP 服务器需要安全连接或客户端未通过身份验证。服务器响应为:5.5.1 需要身份验证。在@sajanyamaha 了解更多信息
  • 请将“mypassword”替换为“shop.bcharya@gmail.com”的密码
  • 是的,我在那里使用自己的密码。
  • 现在尝试添加 sc.UseDefaultCredentials = false;
  • 没有出现同样的错误
【解决方案2】:

如果 SMTP 服务器支持(例如 GMail 和 Hotmail),则仅使用端口 587 和 SSL。一些服务器只使用端口 25 而没有 SSL。

【讨论】:

    【解决方案3】:

    使用下面的方法然后检查:

    SmtpClient sc = new SmtpClient(string); //使用指定的 SMTP 服务器发送电子邮件

    【讨论】:

    • 相当于先创建一个SmtpClient,然后设置Host属性,OP已经做到了。
    • 你能告诉我你想指定的 SMTP 服务器是什么意思吗? @rr_only4you
    • 我使用下面的代码发送邮件,它可以工作:System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient("10.0.0.101");// 请添加您的端口号 client.UseDefaultCredentials = false;
    【解决方案4】:

    您可以使用下面给出的代码来发送电子邮件。这里通过电子邮件发送错误详细信息是一种方法。试试这个代码发送电子邮件。

    using System.Web.Mail
    public static bool SendErrorEmail(string to, string cc, string bcc, string subject,    string body, MailPriority priority, bool isHtml)
    {
     try
    {
    using (SmtpClient smtpClient = new SmtpClient())
    {
    using (MailMessage message = new MailMessage())
     {
     MailAddress fromAddress = new MailAddress(“yourmail@domain.com”, “Your name”);
     // You can specify the host name or ipaddress of your server
     smtpClient.Host = “mail.yourdomain.com”; //you can specify mail server IP address here
     //Default port is 25
     smtpClient.Port = 25;
     NetworkCredential info = new NetworkCredential(“yourmail@domain.com”, “your password”);
     smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
     smtpClient.UseDefaultCredentials = false;
     smtpClient.Credentials = info;
     //From address will be given as a MailAddress Object
     message.From = from;
     message.Priority = priority;
     // To address collection of MailAddress
     message.To.Add(to);
     message.Subject = subject;
     // CC and BCC optional
     if (cc.Length > 0)
     {
     message.CC.Add(cc);
     }
     if (bcc.Length > 0)
     {
     message.Bcc.Add(bcc);
     }
     //Body can be Html or text format;Specify true if it is html message
     message.IsBodyHtml = isHtml;
     // Message body content
     message.Body = body;
     // Send SMTP mail
     smtpClient.Send(message);
     }
     }
     return true;
     }
     catch (Exception ee)
     {
     Logger.LogError(ee, “Error while sending email to ” + toAddress);
     throw;
     }
    }
    

    【讨论】:

    • 你能告诉我发送邮件我应该从我的托管站点地址创建自己的邮件服务器吗?请帮助我。@AndrewBarber
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-03
    • 2014-08-29
    • 2012-08-21
    • 2015-11-20
    相关资源
    最近更新 更多