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


Best way to manage php email sending

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

无论如何,在PHP中使用mail()函数的最佳方法是什么?是否有更好的方法可以让邮件输出实际错误,而不是false?还有跟进问题,有时mail()报告为真,但它从不发送。我感到很失落,我通常从来没有遇到过这么多的PHP错误,我得到它们的修复,最终这个似乎不想工作,即使在重新安装sendmail包后。

注意:我已经编辑了php.ini文件,我的需要仍然没有,检查周围的最佳sendmail实践php

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

下面是一个例子:

$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){
}

试试PEAR MAIL

PHPMailer

这里有一些关于如何使用php mailer的例子

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

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

使用什么服务器由您决定。你可以尝试建立你自己的,并管理所有的问题与垃圾邮件拦截等。或者使用第三方电子邮件服务,如SendGrid。

尝试PHPMailer:

rohitashv.wordpress.com/2013/01/19/how-to-send-mail-using-php/