Не могу отправить почту с помощью SMTP Gmail и почтовой программы Swift - PullRequest
2 голосов
/ 22 марта 2012

Я не могу отправить сообщение электронной почты через gmail smtp на swift mailer, вот код:

<?php

require_once 'inc/swift_mailer/lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
  ->setUsername('mysen2@gmail.com')
  ->setPassword('bestpasswordever')
  ;
$transport->setLocalDomain('[127.0.0.1]');
$mailer = Swift_Mailer::newInstance($transport);

$message = Swift_Message::newInstance($transport)
  ->setSubject('Test Mail')
  ->setFrom(array('mysen2@gmail.com' => 'John Doe'))
  ->setTo(array('testin3@gmail.com'))
  ->setBody('This is the test message.')
  ->addPart('<q>Here is the message itself</q>', 'text/html');

    if (!$mailer->send($message, $failures))
    {
        die("Errors occurred:<br/>" . $failures);
    }

?>

И сообщение об ошибке:

Неустранимая ошибка: Uncaught исключения 'Swift_TransportException 'с сообщением' Не удалось установить соединение с хостом smtp.gmail.com [Невозможно найти транспортный сокет "ssl" - вы забыли включить его при настройке PHP?# -27264] 'в /swift_mailer/lib/classes/Swift/Transport/StreamBuffer.php:266 Трассировка стека: # 0 /swift_mailer/lib/classes/Swift/Transport/StreamBuffer.php(66): Swift_Transport_StreamBuffcket _) # 1 /swift_mailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(117): Swift_Transport_StreamBuffer-> initialize (Array) # 2 /swift_mailer/lib/classes/Swift/Mailer.php(79): Swift_ports() # 3 /usr/local/www/data/mail.php(19): Swift_Mailer-> send (Object (Swift_Message), Array) # 4 {main}, брошенный в / swift_mailer / lib / classes / Swift / Transport /StreamBuffer.php в строке 266

Я полагаю, это проблема с моим сервером, не содержащим библиотеку open ssl:

[Невозможно найти транспорт сокета "ssl" -Вы забыли включить его при настройке PHP?

Как я могу это исправить, тогда?

также

Хорошо ли использовать SMTP gmail для отправки как 50-100 писем в день?Или я должен использовать что-то еще (вы можете предложить и дать мне несколько советов)?

1 Ответ

4 голосов
/ 22 марта 2012

Вы можете исправить [Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?, перекомпилировав PHP с помощью опции --with-ssl[=DIR].

Чтобы сделать это, вам необходимо установить библиотеки OpenSSL на ваш сервер. В зависимости от вашей ОС вы можете сделать что-то вроде apt-get install openssl-dev в Debian / Ubuntu или yum install openssl-devel в RedHat / CentOS / Fedora.

Кроме того, вы можете просто скачать и скомпилировать последнюю версию OpenSSL и использовать ее с PHP.

Если вы не запускаете сервер, вам нужно попросить хост включить SSL в PHP для вас.

Также: Gmail может нормально работать для отправки 50-100 писем в день. Это зависит, хотя. См. Их Правила программы для Gmail , в которых нет подробностей. Похоже, если у вас уже есть существующие отношения с 50-100 людьми, которым вы пишете в день, то вы можете не нарушать какие-либо условия, но вы можете подтвердить это, связавшись с ними напрямую или выполняя поиск по их условиям .

...