versucht Mail mit schnellem Mailer, gmail smtp zu senden, php
-
30-09-2019 - |
Frage
Hier ist mein Code:
<?php
require_once 'Swift/lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465)
->setUsername('me@ff.com')
->setPassword('pass');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('Wonderful Subject')
->setFrom(array('me@ff.com' => 'MY NAME'))
->setTo(array('you@ss.com' => 'YOU'))
->setBody('This is the text of the mail send by Swift using SMTP transport.');
//$attachment = Swift_Attachment::newInstance(file_get_contents('path/logo.png'), 'logo.png');
//$message->attach($attachment);
$numSent = $mailer->send($message);
printf("Sent %d messages\n", $numSent);
?>
AFter habe diesen Fehler RUNNING ...
Fatal error: abgefangene Ausnahme 'Swift_TransportException' mit der Meldung 'Erwartete Antwortcode 220, aber erhaltener Code "", mit der Meldung ""' in /home/sitenyou/public_html/Swift/lib/classes/Swift/Transport/AbstractSmtpTransport.php : 406
Stack trace:
#0 /home/sitenyou/public_html/Swift/lib/classes/Swift/Transport/AbstractSmtpTransport.php(299): Swift_Transport_AbstractSmtpTransport->_assertResponseCode('', Array)
#1 /home/sitenyou/public_html/Swift/lib/classes/Swift/Transport/AbstractSmtpTransport.php(107): Swift_Transport_AbstractSmtpTransport->_readGreeting()
#2 /home/sitenyou/public_html/Swift/lib/classes/Swift/Mailer.php(74): Swift_Transport_AbstractSmtpTransport->start()
#3 /home/sitenyou/public_html/sgmail.php(16): Swift_Mailer->send(Object(Swift_Message))
#4 {main} thrown in /home/sitenyou/public_html/Swift/lib/classes/Swift/Transport/AbstractSmtpTransport.php on line 406
Lösung
GMail SMTP erfordert Verschlüsselung. Verwendung:
Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl");
Andere Tipps
wird die ssl Parameter fehlt, sollte es so etwas sein
Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
Geprüft und funktionieren
Swift SmtpTransport - Kodex (eine E-Mail senden)
Der SMTP von GMAIL ist: smtp.googlemail.com
Der vollständige Code:
<?php
$pEmailGmail = 'xxxx@gmail.com';
$pPasswordGmail = '********';
$pFromName = 'MundialSYS.com'; //display name
$pTo = 'xxxxxx@xxxx.xxx'; //destination email
$pSubjetc = "Hello MundialSYS"; //the subjetc
$pBody = '<html><body><p>Hello MundialSYS</p></html></body>'; //body html
$transport = Swift_SmtpTransport::newInstance('smtp.googlemail.com', 465, 'ssl')
->setUsername($pEmailGmail)
->setPassword($pPasswordGmail);
$mMailer = Swift_Mailer::newInstance($transport);
$mEmail = Swift_Message::newInstance();
$mEmail->setSubject($pSubjetc);
$mEmail->setTo($pTo);
$mEmail->setFrom(array($pEmailGmail => $pFromName));
$mEmail->setBody($pBody, 'text/html'); //body html
if($mMailer->send($mEmail) == 1){
echo 'send ok';
}
else {
echo 'send error';
}
?>
Ich habe es geschafft, ohne die SSL diese Funktion zu erhalten, ist hier, wie:
$transport = Swift_SmtpTransport::newInstance('tls://smtp.gmail.com', 465)
->setUsername('contact@columbussoft.com')
->setPassword('password');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance($subject)
->setFrom(array($emailTo=>$name))
->setTo(array($emailTo=>'Neo Nosrati'))
->addPart($body,'text/plain')
->setReturnPath('other@columbussoft.com');
Ich kann nicht sicher sein, aber ich denke, dass Google Mail-Port 587 TLS verwenden, die nicht SSL, aber eine neuere Version davon. Sie sollten in das überprüfen, weil ich denke, Sie die falsche Konstruktion Code platzieren.
Viel Glück!
Ich benutze die „Nachrichten Swift Mailer“ Bündel in Laravel 3 und das gleiche Problem haben. Nach einigen Tests, in meinem Fall war die Lösung die gleiche E-Mail-Adresse einrichten, dass ich in der SMTP-Authentifizierung auf den „von“ Parametern verwendet.
Ich habe versucht, eine andere Adresse zu verwenden, und das war die Auslösung der „Swiftmailer erwartete Antwortcode 220, aber Code mit Nachricht bekam“ Fehler.
Ich hoffe, das hilft.
Ich habe denselben Fehler vor, und ich fügte hinzu: "ssl" Parameter in Swift_SmtpTransport :: newInstance ( 'smtp.gmail.com', 465 "ssl") wie osos sagte.
ES FUNKTIONIERT !! Dank ..: D
Das ist mein Code:
<?php
require_once 'swift/lib/swift_required.php';
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, "ssl")
->setUsername('XXXXXXX@gmail.com')
->setPassword('XXXXXXX');
$mailer = Swift_Mailer::newInstance($transport);
$message = Swift_Message::newInstance('THIS IS THE SUBJECT')
->setFrom(array('XXXXXXX@gmail.com' => 'YOUR NAME'))
->setTo(array('XXXXXXX@gmail.com' => 'YOU'))
->setBody('This is the text of the mail send by Swift using SMTP transport.');
//$attachment = Swift_Attachment::newInstance(file_get_contents('path/logo.png'), 'logo.png');
//$message->attach($attachment);
$numSent = $mailer->send($message);
printf("Sent %d messages\n", $numSent);
?>
Für Google Apps, zusätzlich zum Einstellen auf Port 465 und ssl wie in der akzeptierten Antwort empfohlen, können Sie haben aktivieren lassen weniger sichere Apps Einstellung, wie pro https://stackoverflow.com/a/25238515/ 947.370