envoi de mail ko avec SwiftMailer et smtp externe à mon compte web

supertoto

New Member
#1
Bonjour à tous,

je rencontre un soucis avec l'envoi de mail.
Lorsque je tente d'envoyer un mail à partir de mon site web avec swiftmailer ça ne fonctionne pas.

Ce qui m'interpelle c'est que les mails sont bien envoyés en local avec le même paramétrage.
J'utilise le serveur smtp d'une boite mail externe qui n'a rien à voir avec mon compte PH.

Pourriez-vous me confirmer qu'il n'y a pas une limitation côté PH ?
Faut-il activer quelque chose dans le Cpanel ?

Merci d'avance pour votre retour.
 
#3
Bonjour

On peut voir un screen de la configuration ?
Bonjour Pierre,

merci pour ton retour rapide. J'attendais un mail pour répondre mais apparemment pas d'alerte lorsqu'une réponse postée.

Pour ce qui est du screenshot, ci-dessous un code qui fonctionne en local mais pas sur PH (en local je suis sur un système wamp) :

PHP:
require_once("/pathhebergement/.../swift_required.php");

// parametrage de connexion
$transport = Swift_SmtpTransport::newInstance('webmail.domaine.com',465,'ssl')->setUsername('[email protected]')->setPassword('motdepassedeconnexion');

$mailer = Swift_Mailer::newInstance($transport);

// parametrage du message
$message = Swift_Message::newInstance()

  // Give the message a subject
  ->setSubject('Your subject')

  // Set the From address with an associative array
  ->setFrom(array('[email protected]' => 'John Doe'))

  // Set the To addresses with an associative array
  ->setTo(array('[email protected]'))

  // Give it a body
  ->setBody('Here is the message itself')

  // And optionally an alternative body
  ->addPart('<q>Here is the message itself</q>', 'text/html');

// envoi du mail
if($mailer->send($message) == 1){
    echo 'send ok';
}
else {
    echo 'send error';
}

En local j'obtiens la réponse suivante (appel en mode CLI) et je reçois bien le mail :
Code:
$ php testMail.php
send ok
Sur PH, avec la meme configuration (j'ai adapté le require_once vers la lib pour que ce soit ok, mais c'est tout) le système lève une exception :
PHP:
Fatal error: Uncaught exception 'Swift_TransportException' with message 'Connection could not be established with host [email protected] [Connection timed out #110]' in /pathhebergement/.../Swift/Transport/StreamBuffer.php:259
Stack trace:
#0 /pathhebergement/.../Swift/Transport/StreamBuffer.php(64): Swift_Transport_StreamBuffer->_establishSocketConnection()
#1 /pathhebergement/.../Swift/Swift-5.0.1/lib/classes/Swift/Transport/AbstractSmtpTransport.php(115): Swift_Transport_StreamBuffer->initialize(Array)
#2 /pathhebergement/.../Swift/Swift-5.0.1/lib/classes/Swift/Mailer.php(80): Swift_Transport_AbstractSmtpTransport->start()
#3 /pathhebergement/.../monscript.php(31): Swift_Mailer->send(Object(Swift_Message))
#4 {main}
  thrown in /pathhebergement/.../Swift/Transport/StreamBuffer.php on line 259
J'ai testé également avec un compte GMAIL (port 465 et ssl), même soucis (ok en local, ko sur PH).

Du coup, je me demande si ce n'est pas un blocage PH, car seul l'environnement change (pas les scripts).

Merci d'avance pour votre retour.
 
Dernière édition:
#5
Bonjour

Tu peux tester avec le port 26 et pas de ssl ?
Bonjour Pierre,
j'ai testé en suivant tes indications mais, malheureusement ça n'a pas mieux marché.

Je me suis basé également sur un script en symfony que j'avais fait par le passé et qui fonctionnait avec Swift.
Par contre je me rappelle que lors de la migration pour arriver chez PH, j'avais dû modifier les paramètres de connexion smtp gmail (hote, user, mot de passe) et mettre ceux qui sont liés à mon compte PH. Ex : mail.domaineprincipalPH.com et user / mdp correspondant

Du coup, est ce que de ton côté tu as déjà pu envoyer des mails avec une librairie sans utiliser le smtp de ton compte principal et un compte gmail par exemple ?

En désespoir de cause, j'ai tenté avec une autre librairie d'envoi de mail (PHPmailer) et là ça passe.
Par contre ça passe avec le compte smtp PH mais pas avec mon autre compte smtp niveau parametre (pas de port ni de securité précisée). Le compte smtp de gmail que j'utilise nécessite peut-être un paramètrage du coup (port + sécu).

Pour finir, avec Swift n'importe quel compte est en échec, je vais voir pour trouver quel paramètrage par défaut est utilisé avec PHPmailer et je retenterai avec Swift + mon compte PH (dans mon script utilisé dans symfony + swift : c'est le compte PH en ssl et port 465 et ça fonctionne toujours du coup ça reste une interrogation sur ce point, car j'ai pourtant l'impression de reproduire ce paramètrage dans mon exemple plus haut).
 
Dernière édition:
Haut