SMTP服务器配置

时间:2011-04-26 05:40:45

标签: c# smtpclient

我在我的 IIS 中安装了Windows XP并配置了SMTP服务器。在常规标签的 IP 地址中指定AllUnAssigned,并在访问标签下指定127.0.0.1

现在我尝试使用以下代码

使用本地SMTP服务器发送邮件
MailMessage amessage = new MailMessage();
amessage.To.Add(new MailAddress("xxx@gmail.com"));
amessage.From = new MailAddress("yyy@gmail.com");
amessage.Subject = "TestMail";
amessage.Body = "This is a testmail";
SmtpClient clienta = new SmtpClient("localhost");
clienta.Timeout = 500;
clienta.Credentials = CredentialCache.DefaultNetworkCredentials;
try
{
    clienta.Send(amessage);
}
catch (Exception ex)
{

   Console.WriteLine(ex);
    Console.ReadLine();
}

Console.ReadLine();

执行上述代码时没有任何错误,但没有发送/接收邮件。当我在Inetpub中查看时,我找到了以下文件:

  

来自:postmaster @ munged   致:yyy@gmail.com   日期:星期二,2011年4月26日11:07:22 +0530   MIME版本:1.0
  内容类型:multipart / report;
  报告类型=递送状态;
    边界= “9B095B5ADSN = _01CC03D260FE2C6C00000003munged?XXX”
  消息ID:
  
  主题:交货状态通知
  (失败)

     

这是MIME格式的消息   此消息的部分内容可能是   没有支持MIME的邮件是不可读的   程序

     

- ?9B095B5ADSN = _01CC03D260FE2C6C00000003munged被改写的   内容类型:text / plain;   字符集= Unicode的1-1-UTF-7

     

这是自动生成的   交货状态通知。

     

投放给以下收件人   失败。

   xxx@gmail.com
     

- ?9B095B5ADSN = _01CC03D260FE2C6C00000003munged被改写的   内容类型:消息/传递状态

     

报告-MTA:dns; munged   收到来自MTA:dns; munged   抵达日期:2011年4月26日星期二   11:07:16 +0530

     

最终收件人:rfc822; xxx@gmail.com
  行动:失败状态:5.0.0
  诊断代码:smtp; 550-5.7.1
  [122.178.191.78]您正在使用的IP   发送邮件无权授权   550-5.7.1直接发送电子邮件给我们   服务器。请在左侧使用SMTP中继   您的550-5.7.1服务提供商
  代替。了解更多信息   550 5.7.1
  http://mail.google.com/support/bin/answer.py?answer=10336
  m9si19863225wfl.114

     

- ?9B095B5ADSN = _01CC03D260FE2C6C00000003munged被改写的   内容类型:message / rfc822

     

收到:来自munged
  ([127.0.0.1])与   Microsoft SMTPSVC(6.0.2600.2180);
  星期二,2011年4月26日11:07:16 +0530
  MIME版本:1.0来自:yyy@gmail.com
  致:xxx@gmail.com日期:2011年4月26日
  11:07:16 +0530主题:TestMail
  内容类型:text / plain;
  字符集= US-ASCII
  内容传输编码:
  引用可打印的返回路径:
  munged@gmail.com消息ID:
  
  X-OriginalArrival时间:2011年4月26日
  05:37:16.0515(UTC)
  FILETIME = [009D2330:01CC03D4]

     

这是一个testmail

     

- 9B095B5ADSN = _01CC03D260FE2C6C00000003munged被改写的 - ?

有人可以帮我吗?

3 个答案:

答案 0 :(得分:2)

以下是错误消息的重要部分:

  

诊断代码:smtp; 550-5.7.1 [122.178.191.78]您用于发送邮件的IP无权通过550-5.7.1直接向我们的服务器发送电子邮件。请改用550-5.7.1服务提供商的SMTP中继。

要解决此问题,您需要设置SMTP中继以发送到ISP的电子邮件服务器。他们会为您发送给Google。

为清楚起见:

  • 这不是应用程序/代码/ C#问题,而是IIS问题。
  • Google不会接受互联网上随机节点的SMTP连接。这意味着:您的Windows XP SMTP服务器将无法直接发送。
  • 您必须发送到已知良好的列入白名单的SMTP主机。
  • 您最好的选择是将IIS配置为充当已知良好SMTP服务器的中继。
  • 对于已知良好的SMTP服务器,最好的选择是您的ISP。这可能是smtp.yourISP.com
  • tutorial's步骤2& 3将帮助您实现这一目标。您的“智能主机”将是您的ISP的SMTP服务器DNS名称或IP地址。

答案 1 :(得分:0)

我认为如果您想通过PC从Gmail发送电子邮件,则应使用SSL加密数据。你必须在这里选择:

  • 使用特定的asp函数
  • 使用像stunnel这样的软件(配置起来并不困难)

答案 2 :(得分:0)

您可以使用以下两种方法之一解决此问题

选项1.在“访问”选项卡下将“127.0.01”更改为“localhost”。

选项2.使用“127.0.01”而不是localhost更改用于连接的代码。

    SmtpClient clienta = new SmtpClient("127.0.01");