Отправка электронной почты с использованием Fat Free Framework и SMTP

Я пытаюсь отправить электронное письмо с помощью Fat Free Framework на локальном хосте, используя SMTP-сервер Gmail, но оно не отправляет почту. Я также пытаюсь использовать средство ведения журнала F3 SMTP, но оно ничего не возвращает.

Результат эха: «результат электронной почты: не отправлен, мой журнал: заголовок: не существует».

Я использую последнюю версию F3 с Apache 2.2 и PHP 5.4 на локальном хосте.

$smtp = new SMTP ( 'smtp.gmail.com', 465, 'SSL', '[email protected]', 'mypass' );

$smtp->set('From', '"Joe Bloggs" <[email protected]>');
$smtp->set('To', '<[email protected]>');
$smtp->set('Subject', 'Sent with the F3 SMTP plug-in');  
$smtp->set('Errors-to', '<[email protected]>');  

$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;

person paulo62    schedule 29.10.2014    source источник
comment
Пробовали ли вы использовать другой SMTP-сервер? Я почти уверен, что это не будет работать с F3, так как Gmail требует STARTTLS, который не поддерживается F3.   -  person sascha    schedule 29.10.2014
comment
только сейчас испытал себя. Он работает с SSL на 465 и TLS на порту 587, но мне пришлось активировать параметр Разрешить менее безопасные приложения, описанный на support.google.com/accounts/answer/6010255.   -  person ikkez    schedule 29.10.2014
comment
хотя я действительно не знаю, почему Google блокирует SSL/TLS или чего здесь не хватает в классе SMTP. Но здесь поддерживается STARTTLS   -  person ikkez    schedule 29.10.2014
comment
возможно, этот ресурс поможет: rocketideas. ком/2012/05/   -  person ikkez    schedule 29.10.2014


Ответы (2)


Я думаю, вам, вероятно, нужен PHPMailer для большего теста... В коде smtp.php из FLAT FREE, gmail, кажется, работает :( но с PHPMail это официально (в примере кода они это делают, и я использую его, и он работает ).

person Jacky Lormoz    schedule 29.10.2014

Спасибо за все полезные комментарии.

Я попробовал PHPMailer, как предложил Джеки, и (удивительно) я получил сообщение об ошибке от PHP, чтобы точно сказать мне, в чем проблема.

Сообщение об ошибке было «ОШИБКА SMTP: не удалось подключиться к серверу: не удалось найти транспорт сокета« ssl »- вы забыли включить его при настройке PHP?»

Итак, я зашел в свой «php.ini», поискал SSL и нашел строку «extension=php_openssl.dll», которая была закомментирована. Я раскомментировал это, перезапустил Apache и PHPMailer, после чего сработало - электронное письмо было отправлено.

Я вернулся к Fat Free, и теперь это тоже сработало! (никаких изменений в коде, опубликованном в вопросе). Жаль, что регистрация Fat Free не дала мне никаких подсказок.

Я использовал этот код для PHPMailer: Пример кода для использования PHPMailer на локальном хосте (Windows)

person paulo62    schedule 29.10.2014