La connexion Swift TransportException n'a pas pu être établie avec l'hôte smtp.gmail.com
Je n'arrive pas à comprendre pourquoi exactement Est-ce qu'il échoue.. c'est exactement l'erreur que j'obtiens:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection
could not be established with host smtp.gmail.com [Connection refused #111]' in
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php:259
Stack trace: #0
/home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php(64):
Swift_Transport_StreamBuffer->_establishSocketConnection() #1 /home/content/38/6896038/html/test/lib/classes/Swift/Transport/AbstractSmtpTransport.php(115): Swift_Transport_StreamBuffer->initialize(Array) #2 /home/content/38/6896038/html/test/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start() #3 /home/content/38/6896038/html/test/contact.php(55): Swift_Mailer->send(Object(Swift_Message)) #4 {main} thrown in /home/content/38/6896038/html/test/lib/classes/Swift/Transport/StreamBuffer.php on line 259
et le code Im using Est ce que j'ai obtenu du tutoriel et de la lecture sur les exemples ici, il est ici:
require_once 'lib/swift_required.php';
$transport = Swift_MailTransport::newInstance();
// Create the Transport the call setUsername() and setPassword()
$transport = Swift_SmtpTransport::newInstance('smtp.gmail.com', 465, 'ssl')
->setUsername('email@googleappsdomain.com')
->setPassword('xxx')
;
// Create the Mailer using your created Transport
$mailer = Swift_Mailer::newInstance($transport);
$nombre = $_POST['name'];
$apellido = $_POST['apellido'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$title = $_POST['jobtitle'];
// Create the message
$message = Swift_Message::newInstance()
// Give the message a subject
->setSubject('Nuevo applicante para: ' . $title)
// Set the From address with an associative array
->setFrom(array('no-reply@topytop.com.pe' => 'no-reply'))
// Set the To addresses with an associative array
->setTo('email@thisemail.com')
// Give it a body
->setBody('<html>
<head></head>
<body>
<table>
<tr>
<td>Nombre:</td><td>' . $nombre . ' ' . $apellido .'</td>
</tr>
<tr>
<td>Email:</td><td>' . $email . '</td>
</tr>
<tr>
<td>Telefono:</td><td>'. $telefono .'</td>
</tr>
</table>
</body>
</html>', 'text/html')
// Optionally add any attachments
->attach(Swift_Attachment::fromPath($_FILES["file"]["tmp_name"])->setFilename($_FILES['file']['name']));
// Send the message
$result = $mailer->send($message);
toute aide est grandement appréciée, j'ai fait ma lecture et ma recherche et je ne trouve pas de solution à cela: (
EDIT: apparemment c'est un problème avec gmail, j'ai changé pour un smtp différent et ça a marché.. : S
10 réponses
erreur fatale: l'exception Uncaught 'Swift_TransportException' with message ' Connexion n'a pas pu être établie avec host smtp.gmail.com [Connection refused #111]
la connexion refusée est un message d'erreur très explicite et clair. Cela signifie que la connexion de la socket n'a pas pu être établie parce que l'extrémité distante a activement refusé de se connecter.
Il est très peu probable que Google bloque la connexion.
Il est très probable que votre fournisseur d'hébergement web a des paramètres de pare-feu qui bloquent les connexions sortantes sur le port 465, ou qu'ils bloquent SMTP à Gmail. 465 est le "mauvais" port pour SMTP sécurisé, bien qu'il soit souvent utilisé, et Gmail écoute là. Essayez plutôt le port 587. Si la connexion est toujours refusée, appelez votre hôte et demandez-leur ce qui se passe.
supprimer à partir de votre config.yml
spool: { type: memory }
alors vous devrez ajouter try catch comme ceci
try{
$mailer = $this->getMailer();
$response = $this->getMailer()->send($message);
}catch(\Swift_TransportException $e){
$response = $e->getMessage() ;
}
j'ai eu le même problème quand J'utilisais Godaddy web hosting et résolu cela en éditant mon .env fichier,
MAIL_DRIVER=smtp
MAIL_HOST=XXXX.XXXX.in
MAIL_PORT=587
MAIL_USERNAME=dexxxxx
MAIL_PASSWORD=XXXXXXXX
MAIL_ENCRYPTION=tls
où MAIL_HOST est votre nom de domaine de Godaddy, MAIL_USERNAME est votre nom d'utilisateur de Godaddy et MAIL_PASSWORD est votre mot de passe de Godaddy.
j'espère que cela peut vous aider.
tcp: 465 a été bloqué. Essayez d'ajouter de nouvelles règles de pare-feu et d'ajouter un port de règles 465. ou cochez 587 et changez le cryptage en tls.
ma solution était de changer:
'driver' => 'smtp',
'driver' => 'mail',
Dans app/config/mail
Hope qui aide
j'ai eu le même problème pendant un certain temps, de remplacer: smtp.gmail.com
173.194.65.108
effectivement travaillé pour moi!
dans mon cas, J'utilisais Laravel 5 et j'avais oublié de changer les globals de courrier dans le .fichier env situé dans le répertoire racine de votre répertoire (ces variables supplantent la configuration de votre courrier)
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=yourmail@gmail.com
MAIL_PASSWORD=yourpassword
par défaut, le mailhost est:
MAIL_HOST=mailtraper.io
j'ai eu la même erreur mais ça a marché pour moi.
tout d'abord, vérifiez le serveur SMTP gmail . vous devez permettre l'accès à des applications moins sécurisées sans autoriser swift mailer n'est pas possible.pour cette connexion dans votre compte e-mail tout d'abord, puis aller dans les paramètres de confidentialité, puis cliquez sur sign et security puis cliquez sur apps without access et ensuite passer à l'option moins sûr apps puis essayer mailer à nouveau, il fonctionnera alors.
j'ai eu le même problème et j'ai réussi à le corriger en désactivant Mon antivirus AVAST. Ainsi que mon extension AVAST dans le navigateur. L'Antivirus bloque parfois votre application. :) J'espère que cela aide à personne.
je viens d'avoir ce problème et résolu en éditant mail.php sous le dossier de configuration. Généralement lors de l'utilisation de l'hébergement partagé, ils hébergent la société vous permet de créer un e-mail tel que
XXXX@yourdomainname.com
. Alors allez dans les paramètres de courrier électronique sous votre hébergement partagé cpanel et ajoutez un nouveau courrier électronique. Prenez cet email et le mot de passe et mettez-le dans le
e-mail.php.
ça devrait marcher!