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
War es hilfreich?

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

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