【问题标题】:.Net smtp not sending emails, no errors.Net smtp 不发送电子邮件,没有错误
【发布时间】:2013-10-10 01:33:56
【问题描述】:

我正在尝试使用我的客户组织的电子邮件服务器通过 Web 应用程序发送电子邮件。以下是我正在使用的代码。

MailMessage MyMailMessage = new MailMessage();
MyMailMessage.Subject = "Email testing";
MyMailMessage.From = new MailAddress("name@mydomain.com", "My name");
MyMailMessage.To.Add(new MailAddress(strEmail, "Applicant"));

SmtpClient mySmtpClient = new SmtpClient();
mySmtpClient.EnableSsl = true;
mySmtpClient.Send(Accepted);

Web.config 文件:

<mailSettings>
  <smtp deliveryMethod="Network" from=" name@mydomain.com">
    <network host="smtps.mydomain.com" port="465" enableSsl="true" defaultCredentials="true"
    userName="myName" password="myPassword" />
  </smtp>
</mailSettings>

当我使用 gmail smtp 详细信息或我当地组织的 smtp 详细信息时,它工作得非常好。出于某种原因,它不起作用,也没有抛出任何错误。

我已经尝试调试并检查了显示“超时”的异常。

我不确定还要检查什么。有人可以提出解决方案吗?

注意:我还检查了没有防火墙阻止端口:465。

谢谢。

亲切的问候,

【问题讨论】:

  • 我不明白这段代码是如何编译的;你永远不会声明一个名为 Accepted 的变量。也许您应该将该行更改为mySmtpClient.Send(MyMailMessage);

标签: c# asp.net .net email smtp


【解决方案1】:

感谢大家的建议。我已经修好了,我只需要将端口号从 465 更改为 25。

【讨论】:

    【解决方案2】:

    您是否验证了客户端 SMTP 服务器安装了有效的 SSL 证书并且可以接受端口 465 上的连接?

    如果可以,请运行数据包嗅探器(如 WireShark)来检查数据包流。

    SysIntenerals TcpView 工具是一个轻量级的实用程序,它还可以让您查看数据包状态。

    【讨论】:

    • 同时检查日志文件可以确定您是否有 DNS 发送问题。
    【解决方案3】:

    您可以尝试通过在 Command Promt(cmd) 中键入“telnet smtps.mydomain.com 465”来测试连接。

    问候

    【讨论】:

      【解决方案4】:
      <system.net>
          <mailSettings>
            <smtp from="emialid.com">
              <network host="domain.com" port="25" userName="emialid.com" password="******" defaultCredentials="false"/>
            </smtp>
          </mailSettings>
          </system.net>
      
      
      
      public string SendEmailTest(String EmailMessage, String FromMail, String MailPassword, String MailServer, String To, String CC, String BCC, String DisplayName, String Subject, String Attachment)
      
          {
              try
              {
                  SmtpClient smtpClient = new SmtpClient();
      
                  MailMessage message = new MailMessage();
      
                  MailAddress fromAddress;
      
                  fromAddress = new MailAddress(FromMail);
      
                  smtpClient.Host = MailServer;
                  smtpClient.Port = 25;
      
                  System.Net.NetworkCredential SMTPUserInfo = new System.Net.NetworkCredential(FromMail, MailPassword);
                  smtpClient.UseDefaultCredentials = false;
                  smtpClient.Credentials = SMTPUserInfo;
      
                  message.From = fromAddress;
      
                  message.To.Add(new MailAddress(To, DisplayName));
                  if (CC != "")
                      message.CC.Add(new MailAddress(CC, DisplayName));
                  if (BCC != "")
                      message.Bcc.Add(new MailAddress(BCC, DisplayName));
      
                  message.Subject = Subject;
      
                  message.IsBodyHtml = true;
                  message.Body = "Your Password is : " + EmailMessage;
      
                  if (Attachment != "")
                      message.Attachments.Add(new Attachment(Attachment));
      
                  message.Priority = MailPriority.High;
      
                  smtpClient.Send(message);
                  return "SendEmail";
              }
              catch (Exception ex)
              {
                  return "Email :" + ex;
              }
      
          }
      }
      

      }

      【讨论】:

        【解决方案5】:

        试试这个:

        var sysLogin="yourlogin@gmail.com";
        var sysPass="y0urP@ss";
        var sysAddress = new MailAddress(sysLogin, "Message from me!");
        
        var receiverAddress = new MailAddress("mike@hotmail.com");
        
        var smtp = new SmtpClient
                {
                    Host = "smtp.gmail.com",   //gmail example
                    Port = 587,
                    EnableSsl = false,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(sysLogin, sysPass)
                };
        
                using (var message = new MailMessage(sysAddress, receiverAddress) { Subject = "Some subject", Body = "Some text" })
                {
                    smtp.Send(message);
                }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-01-14
          • 2016-03-30
          • 1970-01-01
          • 2015-04-16
          • 2016-08-24
          • 1970-01-01
          • 2011-07-30
          • 1970-01-01
          相关资源
          最近更新 更多