Frage

Auf meinem Localhost (Linux Mint OS) funktioniert Swiftmailer mit dem folgenden Code gut, aber wenn ich ihn auf meinen Server überschbe, hängt ich nur an der Send -Funktion und gibt mir dann einen internen Serverfehler.

Ich habe derzeit mein E -Mail -Setup über Google Apps, also funktioniert SMTP vielleicht nicht für diese Situation? Wenn dies der Fall ist, wie schlagen Sie vor, dass ich dies von SMTP ändere?

Wenn ich eine solche E -Mail sende, wird sie mit einer von der Adresse des Benutzernamenbereichs angezeigten Adresse angezeigt. Ich möchte, dass es mit der von der Adresse in der Funktion "setfrom" angezeigten Funktion angezeigt wird.

//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);

Vielen Dank für jede Hilfe!

War es hilfreich?

Lösung

Dies kann ein Portproblem auf dem Server sein. Port 465 könnte geschlossen werden, um Spam zu verhindern. Es könnte auch sein, dass die Version des Servers von PHP SSL -Unterstützung fehlt.

Ich frage mich jedoch, dass ich den lokalen E -Mail -Server nicht benutze, sodass SMTP nicht zulässt?

Wenn Sie Google Mail so explizit wie Sie ansprechen, ist es sehr unwahrscheinlich, dass Sie einen anderen Transporttyp oder einen anderen Server verwenden.

Was ist mit einer der anderen Transporttypen?

Ich denke, SMTP ist Ihre einzige Option, um es mit Google Mail zum Laufen zu bringen. Es könnte jedoch sein, dass Ihr Server a bereitstellt mail() basierter Dienst (offensichtlich mit einer anderen Absenderadresse als Google Mail). In diesem Fall können Sie möglicherweise Swiftmailer verwenden mail Transport.

Andere Tipps

Ich hatte das gleiche Problem: Ich konnte Google Mail -E -Mail in lokaler Sende senden (nachdem ich diese Konfiguration aktualisierte: https://www.google.com/setings/security/lesssecureApps ) aber nicht in der Produktion.

Um mein Problem zu beheben, habe ich Angemeldet in meinem Google Mail -Konto mit meiner Produktion IP / von meinem Produktionsserver und beantworten Sie die Google Mail -Sicherheitsfrage.

Eine der Lösung für die Anmeldung in Ihrem Google Mail -Konto mit Ihrer Produktions -IP ist zu

  1. Öffnen Sie einen SSH -Tunnel (SSH -2nfct -d 5000 yourshuser@yourdomain.org)
  2. Konfigurieren Sie Ihren Browser, um diesen Proxy zu verwenden (z. B. Firefox: zu Einstellungen> Erweitert> Netzwerk> Einstellungen> Manuelle Proxy -Konfiguration> Socken Hosts: Localhost / Post: 5000 / Socken v5)
  3. Melden Sie sich wie gewohnt bei Ihnen Google Mail -Konto an

Der von Symfony ausgegebene Fehler war:

app.ERROR: Exception occurred while flushing email queue: Failed to authenticate on SMTP server with username "joe.doe" using 1 possible authenticators [] []

Nun, hier ist die Lösung.

Wenn Sie SMTP -E -Mails senden, sollten Sie auf dem Server ein E -Mail -Konto erstellen und diese E -Mail -Informationen in Ihrem Code verwenden. Der Server sendet die E -Mail nicht, wenn Sie kein gültiges E -Mail -Konto zum Senden haben, wenn Sie "von" verwendet werden. Dies sollte ein wahres korrektes E -Mail -Konto sein und gefälscht.

Der einzige mögliche Grund zum Senden mit einem gefälschten Konto ist die Verwendung von Mail () -Funktion.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top