Лучший способ управлять отправкой почты php - PullRequest
1 голос
/ 11 июля 2011

Я запрограммировал и разработал пакет CMS, сделанный на заказ с нуля (Apache2 + PHP + Mysql + Puspoold + Bitcoin) для майнинга биткойнов.У меня есть много разных дистрибутивов, которые используют мои пользователи, а также множество программ электронной почты (sendmail / postfix).Мое приложение отлично работает на моем локальном компьютере с sendmail, однако оно не работает на системах VPS коммерческого типа, включая мою собственную, которая работает с моего локального компьютера (просто чтобы прояснить это).

В любом случае, что лучшеспособ использовать функцию mail () в PHP?Есть ли лучший способ получить актуальную ошибку из почты, чем просто ложь?Также следите за вопросом, иногда mail () сообщает true и никогда не отправляет.Я чувствую себя настолько растерянным, что у меня обычно не бывает таких больших проблем с ошибкой PHP, я их исправляю, в конце концов, эта доза, похоже, не будет работать даже после повторной установки пакетов sendmail.

Примечание: я редактировал php.INI-файл для моих нужд по-прежнему ничего и проверьте лучшие практики sendmail для php.

Ответы [ 5 ]

4 голосов
/ 27 ноября 2012

Я предлагаю вам использовать 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){

}
1 голос
/ 11 июля 2011

Попробуйте P EAR MAIL

0 голосов
/ 16 июля 2013
0 голосов
/ 11 июля 2011

Я бы обычно пересылал всю почту через сторонний SMTP-сервер.Это можно сделать непосредственно в php.ini или перенастроив локальный почтовый сервер для ретрансляции всей электронной почты.

Какой сервер вы используете, зависит от вас.Вы можете попытаться настроить свои собственные и управлять всеми проблемами с блокировкой спама и т. Д. Или использовать стороннюю почтовую службу, такую ​​как SendGrid.

0 голосов
/ 11 июля 2011

PHPMailer

Вот несколько примеров того, как использовать php mailer

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

...