我在wampserver 2.1上的php.ini中设置sendmail,在本地机器上发布表单数据?

时间:2012-01-28 10:40:03

标签: zend-framework zend-form wampserver

我在本地计算机上使用zendframework创建了一些表单,通过电子邮件发送表单内容。

我想在本地测试这些功能,并阅读了一些关于配置php.ini文件的帖子,但是不确定哪种方法正确?

任何人都可以帮助我,非常感谢

1 个答案:

答案 0 :(得分:1)

在Windows上,您必须使用SMTP发送邮件。 fake sendmail for Windows有一个下降但仍需要SMTP服务器。

您可以使用ISP的sendmail服务器(如果他们提供),或者您可以在本地计算机上设置一个。 1234

由于您使用的是Zend Framework,您可以使用Zend_Mail通过SMTP服务器发送(Zend_Mail也可以使用sendmail,但由于未配置,因此您无法使用该传输)。在这种情况下,请参阅Sending via SMTPSMTP AuthenticationSecuring 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。