Отправка электронной почты с использованием Fat Free Framework и SMTP
Я пытаюсь отправить электронное письмо, используя Fat Free Framework на localhost, используя SMTP-сервер Gmail, но оно не отправляет почту. Я также пытаюсь использовать средство ведения журнала SMTP F3, но оно ничего не возвращает.
Вывод из эха: "результат по электронной почте: не отправлено, mylog:, заголовок: не существует".
Я использую последнюю версию F3, с Apache 2.2 и PHP 5.4 на localhost.
$smtp = new SMTP ( 'smtp.gmail.com', 465, 'SSL', 'joebloggs@gmail.com', 'mypass' );
$smtp->set('From', '"Joe Bloggs" <joebloggs@gmail.com>');
$smtp->set('To', '<recipientname@gmail.com>');
$smtp->set('Subject', 'Sent with the F3 SMTP plug-in');
$smtp->set('Errors-to', '<joebloggs@gmail.com>');
$message = 'it works';
$sent = $smtp->send($message, TRUE);
$mylog = $smtp->log();
$sentText = 'not sent';
$headerText = 'does not exist';
if ($sent)
{
$sentText = 'was sent';
}
if ($smtp->exists('Date'))
{
$headerText = 'exists';
}
echo "email result: " . $sentText . ",mylog: " . $mylog . ", header: " . $headerText;
2 ответа
Спасибо за все полезные комментарии.
Я попробовал PHPMailer, как предложил Джеки, и (удивительно) я получил сообщение об ошибке от PHP, чтобы точно сказать, в чем проблема.
Сообщение об ошибке было "SMTP ОШИБКА: не удалось подключиться к серверу: не удалось найти транспортный сокет"ssl" - вы забыли включить его при настройке PHP? "
Поэтому я зашел в свой "php.ini" и искал SSL и нашел строку "extension=php_openssl.dll", которая была закомментирована. Я раскомментировал его, перезапустил Apache и PHPMailer, затем сработал - письмо было отправлено.
Я вернулся в Fat Free, и теперь это тоже сработало! (без изменений в коде, размещенном в вопросе). Жаль, что регистрация Fat Free не дала мне никаких подсказок.
Я использовал этот код для PHPMailer: Пример кода для использования PHPMailer на локальном хосте (Windows)
Я думаю, что вам, вероятно, нужен PHPMailer для дальнейшего тестирования... В коде smtp.php из FLAT FREE gmail, кажется, работает:(но с PHPMail это официально (в примере кода они делают это, и я использую это, и это работает)).