Поэтому я потратил несколько дней, пытаясь отправить электронную почту, используя swiftmailer по php, и я использую localhost xampp server v3.2.1, версия PHP которого — 5.4.31, и мой swiftmailer, я полагаю, v5.3
Вот файл PHP:
require_once 'lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com',465,'ssl')
->setUsername('[email protected]')
->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('[email protected]'))
->setTo(array('[email protected]'))
->setBody('Hello World')
;
$result = $mailer->send($message);
if (!$mailer->send($message,$failures)) {
echo "Failures:";
print_r($failures);
} else {
echo "sent";
}
Страница только что вернулась пустой, а сообщения не были отправлены или получены. Пожалуйста, скажите, есть ли что-то, что я должен настроить, прежде чем заставить это работать, или я пропускаю важную строку кода или что-то еще.
Заранее спасибо.
Я продолжаю пытаться, и как только я получил вход в мой журнал ошибок, который:
[15-Oct-2014 16:33:49 Europe/Berlin] PHP Fatal error: Uncaught exception 'Swift_TransportException' with message 'Expected response code 250 but got code "535", with message "535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 fn2sm17247597pdb.75 - gsmtp
"' in C:\xampp\htdocs\1\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php:386
Stack trace:
#0 C:\xampp\htdocs\1\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php(281): Swift_Transport_AbstractSmtpTransport->_assertResponseCode('535-5.7.8 Usern...', Array)
#1 C:\xampp\htdocs\1\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\EsmtpTransport.php(245): Swift_Transport_AbstractSmtpTransport->executeCommand('RSET\r\n', Array, Array)
#2 C:\xampp\htdocs\1\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\Esmtp\Auth\XOAuth2Authenticator.php(56): Swift_Transport_EsmtpTransport->executeCommand('RSET\r\n', Array)
#3 C:\xampp\htdocs\1\vendor\swiftmailer\swiftma in C:\xampp\htdocs\1\vendor\swiftmailer\swiftmailer\lib\classes\Swift\Transport\AbstractSmtpTransport.php on line 386
В конце концов ему удалось отправить электронную почту, и мне пришлось изменить настройки безопасности в моей учетной записи Gmail, отключив защиту, и теперь он отлично отправляет электронную почту.
Попробуйте настроить ваш транспортер так:
$transport = Swift_SmtpTransport::newInstance('ssl://smtp.gmail.com', 465);
Вы также можете проверить исключения:
try {
$mailer = Swift_Mailer::newInstance($transport);
} catch(Swift_TransportException $exception) {
var_dump($exception);
}
«535-5.7.8 Имя пользователя и пароль не приняты.» означает, что третьим лицам не разрешен доступ к вашей учетной записи. Вам необходимо предоставить им доступ к третьим лицам, обновив свой аккаунт Google по адресу:
Под «логином» найдите фразу «разрешить менее безопасный доступ к приложениям» и измените на «РАЗРЕШИТЬ».