我编写并开发了一个从头开始定制的CMS包(Apache2 + PHP + Mysql + Puspoold + Bitcoin)用于比特币挖掘。我有很多不同的发行版,我的用户使用这些发行版以及许多电子邮件程序(sendmail / postfix)的选择。 我的应用程序在我的本地计算机上使用sendmail工作正常,但它似乎不适用于商业类型的VPS系统,包括我自己的本地计算机(只是为了清楚)。
无论如何,在PHP中使用mail()函数的最佳方法是什么? 有没有更好的方法让电子邮件从邮件输出然后只是假? 还要跟进问题,有时mail()报告为真,它永远不会发送。 我觉得很丢失我通常从来没有遇到过PHP错误这么麻烦我最终解决了这个问题,即使在重新发送sendmail软件包之后这似乎也不想工作。
注意:我已经编辑了php.ini文件以满足我的需求,并检查php的最佳sendmail实践。
答案 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)
答案 3 :(得分:0)
我通常会通过第三方smtp服务器中继所有邮件。这可以直接在php.ini中完成,也可以通过重新配置本地邮件服务器来中继所有电子邮件。
您使用的服务器取决于您。您可以尝试设置自己的,并管理垃圾邮件阻止等所有问题。或者使用像SendGrid这样的第三方电子邮件服务。
答案 4 :(得分:0)