任何PHP函数发送电子邮件没有邮件()

时间:2010-03-02 20:55:39

标签: php email

我正在使用 mail()函数从PHP发送电子邮件而无需任何身份验证。

此功能仅适用于我的网络服务器,但不适用于本地计算机。

我正在寻找最好的PHP函数来发送带有身份验证的电子邮件,这可以在任何机器上运行而无需修改php.ini

我正在使用PHP与IIS和Windows

感谢

5 个答案:

答案 0 :(得分:3)

另一种可能性是通过pear安装mail和net_smtp。

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/

答案 1 :(得分:1)

您应该运行本地smtp server。只要该程序正在运行,这将使mail()正常工作。还有其他类似的服务器会将邮件写入文件,因此在开发环境中实际上没有邮件发送。

Mail()是发送邮件的方式。你只是在本地配置问题:D

答案 2 :(得分:0)

如果您只需要一个可以在自己的盒子中测试的工作SMTP服务器,请在您的盒子上运行这个小家伙,这样您就可以在不更改邮件处理代码的情况下测试邮件。

http://www.softstack.com/freesmtp.html(免费的独立简单服务器)

答案 3 :(得分:0)

本周早些时候我遇到了这个问题,发现SwiftMailer。我只听说过有关它的好消息。工作得很好。

它可以通过SMTP,sendmail或mail()发送。对于本地开发,您必须连接到SMTP服务器,无论是本地运行还是外部服务器。

答案 4 :(得分:0)

你可以使用phpmailer库,通过这个tutorial安装phpmailer,更改用户名,密码,From和To地址。喜欢发送电子邮件。