在Windows上,您必须使用SMTP发送邮件。 fake sendmail for Windows有一个下降但它仍然需要一个SMTP服务器。
您可以使用ISP的sendmail服务器(如果他们提供),或者您可以在本地计算机上设置一个。 1,2,3,4
由于您使用的是Zend Framework,您也可以使用Zend_Mail通过SMTP服务器发送(Zend_Mail也可以使用sendmail,但由于它未配置,因此您无法使用该传输)。在这种情况下,请参阅Sending via SMTP,SMTP Authentication和Securing SMTP Transport。
以下是一些使用AUTH和TLS安全性发送SMTP邮件的示例代码。
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Smtp.php';
$config = array('ssl' => 'tls',
'port' => '465', // 25 if no ssl
'auth' => 'login',
'username' => 'user',
'password' => 'password');
$transport = new Zend_Mail_Transport_Smtp('smtp.example.com', $config);
$mail = new Zend_Mail();
$mail->addTo('user@domain')
->setSubject('Mail Test')
->setBodyText("Hello,\nThis is a Zend Mail message...\n")
->setFrom('sender@domain');
try {
$mail->send($transport);
echo "Message sent!
\n";
} catch (Exception $ex) {
echo "Failed to send mail! " . $ex->getMessage() . "
\n";
}另请注意,如果您从其中一个IP地址发送,您的ISP可能根本不需要您进行身份验证,但您可能必须使用您的用户名和密码进行身份验证,在这种情况下您将需要使用TLS。