我有一个 Windows 服务,它在我的工作办公室 PC(在系统托盘中)上运行,并且在一天中的某些时候它会向 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>
并通过我的工作办公室 PC 上的一个简单控制台脚本从 admin@site1.com 向 admin@site2.com 发送一封电子邮件,该脚本未以任何方式连接到我的 Rackspace 服务器,然后它可以正常工作,我收到了电子邮件。
但是,如果我将收件人电子邮件地址更改为我的工作电子邮件地址,例如 rob@office.com,我在运行脚本时会收到以下错误
发送电子邮件测试 由于 SMTP 错误,电子邮件发送失败;交易失败。服务器响应为:5.7.1:中继访问被拒绝发送电子邮件测试完成
所以:
a) 当脚本在我的工作 PC 上运行并且发件人和收件人都是我的远程 Rackspace 服务器上的域时,为什么测试工作正常?
b)或者相反,当收件人地址(或发件人和收件人地址)是我的工作地址时,为什么它不起作用?
c)如果发生了奇怪的事情,我应该如何设置它,以便我可以通过我自己的邮件服务器(在我的云服务器上)从我的工作 PC(或任何 PC)安全地发送电子邮件,而无需提供服务器的主机名(没有端口没有等)?
我希望能够将我的 Windows 服务移到另一台机器上,但我需要知道如何设置我的应用程序以便能够通过我的 Rackspace Cloud 服务器正确安全地发送电子邮件,这样其他人就无法通过它发送电子邮件它等等。我的防火墙设置正确,技术男孩说他看不到设置有任何问题,人们不能只访问服务/端口并滥用它。因此,我想知道为什么我可以在没有连接的情况下通过我的云服务器从我的工作 PC 发送电子邮件(我知道)。
任何帮助将非常感激。让我知道发生了什么以及我应该如何设置 NET 类,以便我可以通过邮件主机从可能是远程的 EXE 发送电子邮件。
谢谢