从另一台服务器发送邮件

我有一台服务器,使用PHP的mail()函数,在过去两年中一直在发送电子邮件。 它运行Windows Server 2003.我有另一台服务器,在同一个本地networking上运行Ubuntu 10.10。 有没有办法告诉一个PHP脚本执行转储电子邮件到Windows的SMTP文件夹出去?

更新:我将离开上面,所以其他答案是有道理的,但只是为了澄清,这是我正在尝试做的。 在Ubuntu服务器上通过cron执行一个PHP脚本,读取一个数据库,并通过PHP的mail()将这些电子邮件转储到它的SMTP队列中,然后将这些电子邮件转发给Windows服务器,这实际上会将电子邮件发送出去。

您可以configuration窗口框允许从ubunto邮箱中继邮箱而不是转储文件到smtp文件夹

往下看http://php.net/manual/en/function.mail.php (在“注释”下),你可以使mail()函数直接与在远程主机上运行的邮件传输代理交谈(尽pipe奇怪的是这个function似乎是基于文档的Windows实现独特的,所以如果你需要将脚本移动到另一个平台,你需要记住这一点…)

试试这个,在Windows主机上的php.ini

 [mail function] SMTP = yourubuntumachine.domain.com; for Win32 only smtp_port = 25 

当然,您需要在Ubuntu主机上运行某种MTA,但是安装(比如说)Exim(在exim4-daemon-light软件包中)并将其configuration为仅在Windows机器中转发邮件就足够简单了。

这是我做的解决这个,因为我不清楚,其他答案是倒退(我的错)。

我按照本指南在Ubuntu上设置了ssmtp: http : //www.davidhurst.co.uk/2007/06/19/php-mail-and-ssmtp-on-debian-linux/ 。 它涉及编辑ssmtp.conf文件,并编辑php.ini以使用不同的sendmail_path。

然后,我configuration了MailEnable,运行在Windows上的SMTP服务器以允许传入中继连接。

我重新启动Apache,现在当我从Ubuntu的邮箱()从Ubuntu的邮箱(),他们被转发到Windows SMTP服务器,并发送出去。