Swiftmailer работает на локальном хосте, но не работает - PullRequest
1 голос
/ 20 января 2011

На моем локальном хосте (Linux Mint OS) Swiftmailer отлично работает со следующим кодом, но всякий раз, когда я перемещаю его на свой сервер, он просто зависает при отправке и затем выдает мне внутреннюю ошибку сервера.

В настоящее время у меня настроена электронная почта через Службы Google, поэтому, возможно, SMTP не подойдет для этой ситуации? Если это так, как вы предлагаете мне изменить это с SMTP.

Кроме того, всякий раз, когда я отправляю электронное письмо, подобное этому, оно появляется с адресом отправителя в области имени пользователя. Я хочу, чтобы он отображался с адресом from в функции "setFrom".

//Include the swiftmailer class
require_once 'comm/swiftmailer/swift_required.php';

//Create a message
//Pass it as a parameter when you create the message
$message = Swift_Message::newInstance();
$message->setSubject('My Subject');
$message->setFrom(array('noreply@domain.com' => 'No Reply'));
$message->setTo(array('me@domain.com' => 'Me'));
$message->setBody($emailContent, 'text/html');

//Create transport class and email the message
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')->setUsername('useracctname')->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);
$result = $mailer->send($message);

Большое спасибо за любую помощь!

Ответы [ 3 ]

1 голос
/ 15 декабря 2015

У меня была та же проблема: я смог отправить письмо по электронной почте Gmail локально (после обновления этой конфигурации: https://www.google.com/settings/security/lesssecureapps), но не в работе.

Чтобы исправить мою проблему, я зарегистрировался в моей учетной записи gmail с моим рабочим ip / с моего производственного сервера и ответил на вопрос безопасности gmail.

Одним из решений для входа в свою учетную запись gmail с рабочим ip является

  1. открыть туннель ssh (ssh -2NfCT -D 5000 yoursshuser@yourdomain.org)
  2. настроить браузер на использование этого прокси-сервера (например, Firefox: в «Настройки»> «Дополнительно»> «Сеть»> «Настройки»)> Ручная настройка прокси-сервера> SOCKS Хосты: localhost / Post: 5000 / SOCKS v5)
  3. войти в свою учетную запись gmail как обычно

Ошибка, выданная Symfony, была:

app.ERROR: Exception occurred while flushing email queue: Failed to authenticate on SMTP server with username "joe.doe" using 1 possible authenticators [] []
1 голос
/ 21 января 2011

Это может быть проблема порта на сервере. Порт 465 может быть закрыт для предотвращения спама. Возможно также, что серверная версия PHP не поддерживает SSL.

Мне интересно, может ли быть так, что я не использую локальный почтовый сервер, поэтому он не разрешает SMTP?

Если вы обращаетесь к gmail так же явно, как и к себе, очень маловероятно, что вы используете другой тип транспорта или другой сервер.

Кроме того, как насчет использования одного из других видов транспорта?

Я думаю, что SMTP - ваш единственный способ запустить его с Gmail. Однако может случиться так, что ваш сервер предоставляет сервис на основе mail() (хотя, очевидно, с адресом отправителя, отличным от адреса GMail). В этом случае вы можете использовать транспорт mail Swiftmailer .

0 голосов
/ 07 ноября 2013

хорошо, вот решение.

если вы отправляете почту SMTP, вы должны создать учетную запись электронной почты на сервере, а затем использовать эту информацию электронной почты в своем коде. сервер не будет отправлять электронную почту, если у вас нет действующей учетной записи электронной почты для отправки с использованием этого когда вы используете «от». это должна быть настоящая правильная учетная запись электронной почты, поддельная.

единственная возможная причина отправки с использованием поддельной учетной записи - использование функции mail ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...