我在本地计算机上使用zendframework创建了一些表单,通过电子邮件发送表单内容。
我想在本地测试这些功能,并阅读了一些关于配置php.ini文件的帖子,但是不确定哪种方法正确?
任何人都可以帮助我,非常感谢
答案 0 :(得分:1)
在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邮件的示例代码。
<?php
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!<br />\n";
} catch (Exception $ex) {
echo "Failed to send mail! " . $ex->getMessage() . "<br />\n";
}
另请注意,如果您从其中一个IP地址发送,您的ISP 可能根本不需要您进行身份验证,但您可能需要使用您的用户名和密码进行身份验证,在这种情况下你会想要使用TLS。