为什么我可以从工作PC向同一服务器上的其他域发送电子邮件到云服务器域?

时间:2013-01-08 07:10:55

标签: .net email networking smtp host

我有一个在我的办公室PC上运行的Windows服务(在系统托盘中),并且当天它将电子邮件发送到Rackspace虚拟服务器上托管的Wordpress站点。

目前我只使用基本的MailMessage功能,它正在运行,例如

MailMessage message = new MailMessage(sendfrom, sendto, subject, emailmessage);
message.IsBodyHtml = html;
SmtpClient client = new SmtpClient();
client.Send(message);

但是在我的配置文件中,我正在使用我的办公室邮件主机,例如

<system.net>
  <mailSettings>
    <smtp>
      <network host="generic.smtp.myoffice"/>
    </smtp>
  </mailSettings>
</system.net>

我想将其更改为在Rackspace云服务器上使用我自己的邮件主机和邮件服务器。

如果我将网络主机更改为我自己的服务器主机名,它的工作时间很长,因为发送和发送到电子邮件地址都是该服务器上存在的地址,例如我的Rackspace服务器主机名是

myserver.monkeymagix.com

我在其上设置了两个网站

www.site1.com和www.site2.com都有电子邮件帐户。

如果我将网络主机更改为

<system.net>
  <mailSettings>
    <smtp>
      <network host="myserver.monkeymagix.com"/>
    </smtp>
  </mailSettings>
</system.net>

从我的办公室电脑上的一个简单的控制台脚本发送电子邮件从admin@site1.com发送到admin@site2.com,该脚本没有以任何方式连接到我的Rackspace服务器然后它可以工作,我收到了电子邮件。< / p>

但是,如果我将收件人电子邮件地址更改为我的工作电子邮件地址,例如rob@office.com,则在运行脚本时出现以下错误

发送电子邮件测试 由于SMTP错误,电子邮件无法发送;交易失败。服务器响应为:5.7.1:拒绝中继访问 发送电子邮件测试完成

因此:

a)当脚本在我的工作PC上运行且发件人和收件人都是我的远程Rackspace服务器上的域时,为什么测试工作?

b)或者相反,当收件人地址(或发件人和收件人地址)都是我的工作地址时,为什么它不起作用?

c)如果发生了一些奇怪的事情我应该如何设置以便我可以通过我自己的邮件服务器(在我的云服务器上)从我的工作PC(或任何PC)发送电子邮件)安全而不仅仅提供服务器的主机名(没有端口没有等)?

我希望能够将我的Windows服务转移到另一台计算机,但我需要知道如何设置我的应用程序,以便能够正确安全地通过我的Rackspace Cloud服务器发送电子邮件,以便其他任何人都无法通过它发送电子邮件等我的防火墙设置正确,技术男孩说,他没有看到设置的任何问题,人们不能只是访问服务/端口和误用它。因此,我想知道为什么如果没有连接(我知道),我可以通过我的云服务器从我的工作PC发送电子邮件。

非常感谢任何帮助。两者都让我知道发生了什么以及我应该如何设置NET类,以便我可以通过邮件主机从可能远程的EXE发送电子邮件。

由于

1 个答案:

答案 0 :(得分:0)

您的云服务器可能已禁用中继,以防止垃圾邮件发送者使用其SMTP服务器。

您可能需要启用身份验证才能通过其SMTP服务器向其他人发送电子邮件。但是,您很可能仍然只能使用您作为发件人进行身份验证的电子邮件地址。

<system.net>
    <mailSettings>
        <smtp from="name@domain.com">
            <network host="smtp.mail.com" 
                     userName="name@domain.com" 
                     password="blog.dotnetclr.com"/>
        </smtp>
    </mailSettings>
</system.net>