管理php电子邮件发送的最佳方式

时间:2011-07-11 01:35:52

标签: php email sendmail send

我编写并开发了一个从头开始定制的CMS包(Apache2 + PHP + Mysql + Puspoold + Bitcoin)用于比特币挖掘。我有很多不同的发行版,我的用户使用这些发行版以及许多电子邮件程序(sendmail / postfix)的选择。 我的应用程序在我的本地计算机上使用sendmail工作正常,但它似乎不适用于商业类型的VPS系统,包括我自己的本地计算机(只是为了清楚)。

无论如何,在PHP中使用mail()函数的最佳方法是什么? 有没有更好的方法让电子邮件从邮件输出然后只是假? 还要跟进问题,有时mail()报告为真,它永远不会发送。 我觉得很丢失我通常从来没有遇到过PHP错误这么麻烦我最终解决了这个问题,即使在重新发送sendmail软件包之后这似乎也不想工作。

注意:我已经编辑了php.ini文件以满足我的需求,并检查php的最佳sendmail实践。

5 个答案:

答案 0 :(得分:4)

我建议你使用Zend Mail而不是原生的send()php函数。为了使用它,您需要复制并包含Zend Libraries(直接在您的应用程序或服务器配置中)

以下是一个例子:

$config = array(
        'auth' => 'login',
        'username' => 'username@gmail.com',
        'password' => 'password',
        'ssl' => 'tls',
        'port' => 587
    );

    $mailTransport = new Zend_Mail_Transport_Smtp('smtp.gmail.com', $config);
    Zend_Mail::setDefaultTransport($mailTransport);


$mail = new Zend_Mail();
$mail->addTo($email);
$mail->setSubject($subject);
$mail->setBody($message);
$mail->setFrom('username@gmail.com', 'User Name');

//Send it!

try {
    $mail->send();
} catch (Exception $e){

}

答案 1 :(得分:1)

尝试P EAR MAIL

答案 2 :(得分:0)

PHPMailer

以下是一些关于如何使用php邮件程序的例子

http://phpmailer.worxware.com/index.php?pg=examples

答案 3 :(得分:0)

我通常会通过第三方smtp服务器中继所有邮件。这可以直接在php.ini中完成,也可以通过重新配置本地邮件服务器来中继所有电子邮件。

您使用的服务器取决于您。您可以尝试设置自己的,并管理垃圾邮件阻止等所有问题。或者使用像SendGrid这样的第三方电子邮件服务。

答案 4 :(得分:0)