4

不能发邮件。这是我的C#来源:

  var to = "me@mycompany.com";
  var subject = "test";
  var body = "test mail";
  var message = new MailMessage(from, to, subject, body);
  var client = new SmtpClient { Credentials = new NetworkCredential("me@mycompany.com", "mypassword") };
  client.Send(message);

这是App.config

  <system.net>
    <mailSettings>
      <smtp from="me@mycompany.com">
        <network
          host="mail.mycompany.com"
          port="25"
          userName="me@mycompany.com"
          password="mypassword"
        />
      </smtp>
    </mailSettings>
  </system.net>

到目前为止,如果主机/端口App.config错误,则会引发异常,但如果用户/密码错误则不会引发异常(明显的安全原因)。但是,我已经成功地使用与源中相同的用户/密码从 Microsoft Outlook 登录。

电子邮件没有收到,也没有在Inbox,也没有在Junk文件夹中。如何验证服务器端(考虑到它是 microsoftonline.com 的一部分)?我错过了什么?请问我做错了什么?

4

4 回答 4

2

我很确定如果服务器出于任何原因拒绝电子邮件,您的代码会抛出异常。如果不是,则意味着服务器正在接受具有提供的用户名和密码的电子邮件,并且从技术上讲,这些邮件正在“发送”成功。但是,这并不能保证任何人都会收到任何电子邮件。您需要找出电子邮件服务器对这些电子邮件做了什​​么以及为什么。

于 2010-08-16T13:16:18.923 回答
2

下面的链接有一个非常简单的发送电子邮件功能的示例,可以从控制台应用程序调用该功能进行测试。我知道此代码有效,因此它可以隔离您的代码的任何问题,并可能更清楚地说明问题所在。

SendEmail() – 在 C# 中创建和发送电子邮件消息

于 2010-08-16T19:42:15.170 回答
1

我在尝试使用 smtp 时也遇到了防火墙问题。如果您不想使用 IT 并且确实安装了 Outlook,这是一种解决方法。此方法将使用您的默认电子邮件发送。您还需要添加一个引用(我在 COM 'Microsoft Outlook 14.0 Object Library' 下使用)

     using Outlook = Microsoft.Office.Interop.Outlook;

     private void sendEmail(string DistributionList, string AttachmentDestination)
      {
        //new outlook instance
        Outlook.Application app = new Outlook.Application();

        //new mail object
        Outlook.MailItem mail = app.CreateItem(Outlook.OlItemType.olMailItem);

        mail.Subject = "This is coming from a C# script";
        mail.To = DistributionList; //your distribution list "email@something.com"
        mail.Body = "This is the body of an email from a C# script";
        mail.Attachments.Add(AttachmentDestination); //location of attachment (can be ommitted)
        mail.Send();
        app.Quit();
    }
于 2015-03-16T22:27:28.563 回答
-2

得到了 IT 团队的答复 - 这是一个配置/安全问题。用 IT 解决。非常感谢大家。

于 2010-08-17T06:46:21.963 回答