2014-10-29 1 views
0

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

Выход из эха: «результат электронной почты: не отправлено, mylog:, header: не существует».

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

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

Вы пробовали другой SMTP-сервер? Я уверен, что он не будет работать с F3, поскольку Gmail требует STARTTLS, который не является supp или F3. – sascha

+0

просто проверил себя сейчас. Он работает с SSL на 465 и TLS на порту 587, но мне пришлось активировать опцию «Разрешить менее безопасные приложения», описанную на https://support.google.com/accounts/answer/6010255. – ikkez

+0

, хотя я действительно не знаю, почему Google блокирует SSL/TLS или что здесь отсутствует в классе SMTP. Но STARTTLS поддерживается здесь – ikkez

ответ

0

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

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

Сообщение об ошибке была «SMTP ERROR: Не удалось подключиться к серверу: не удалось найти перенос сокетов« ssl »- вы забыли включить его при настройке PHP? "

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

Я вернулся к обезжиренный и что теперь работал слишком! (никаких изменений в коде, публикуемую в вопросе). Это жаль обезжиренный каротаж не давал мне никаких намеков.

Я использовал этот код для PHPMailer: Example code for using PHPMailer on localhost (Windows)

0

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