我正在使用mail()函数在PHP中发送电子邮件,不需要任何身份验证。
这个函数只在我的Web服务器上工作,但在本地机器上无法工作。
我正在寻找最佳的PHP函数来发送带有身份验证的电子邮件,可以在任何机器上工作,而不需要修改php.ini文件。
我正在使用PHP和IIS以及Windows操作系统。
谢谢。
pear install Mail
pear install Net_Smtp
然后您可以使用SMTP身份验证将邮件发送到另一台服务器:
require_once "Mail.php";
$body = "Mein Mail Body\n";
$subject = "Mail mit SMTP Authentifizierung";
$mail_to = "zumir@meinemailserver.de";
$mail_from = "phpmailer@meinemailserver.de";
//SMTP Verbindungsdaten
$host = "smtp.meinemailserver.de";
$username = "phpmailer";
$password = "SuperGeheim";
$smtp = Mail::factory('smtp',
array (
'host' => $host,
'auth' => true,
'username' => $username,
'password' => $password
));
$headers = array (
'From' => $mail_from,
'To' => $mail_to,
'Subject' => $subject
);
$mail = $smtp->send($mail_to, $headers, $body);
if (PEAR::isError($mail)) {
echo "Fehler beim Versender der E-Mail : ". $mail->getMessage();
}
(摘自http://www.jgeppert.com/2009/06/php-e-mail-mit-smtp-authentifizierung-versenden/)
该文讲述如何使用SMTP身份验证在PHP中发送电子邮件。你应该运行一个本地的smtp服务器。只要这个程序正在运行,就可以让mail()
正常工作。还有其他类似的服务器,它们会将邮件写入文件,因此在开发环境中实际上不会发出任何邮件。
Mail()
是发送邮件的最佳方式。你只需要在本地进行配置即可 :D
本周早些时候我遇到了这个问题,并找到了SwiftMailer。我只听说过它的好处。对我很有效。
它可以通过SMTP、sendmail或mail()
发送。 对于本地开发,您需要连接到SMTP服务器,无论是在本地运行的还是外部服务器。