Salut à tous,
Alors voici mon problème:
Je suis entrain de créer un système d'envoie de newsletter. Afin d'envoyer la newsletter à la liste des personnes inscrites, j'utilise la librairie PHPMailer.
seulement, je me heurte à un obstacle :
A chaque tentative de connexion au serveur SMTP, je me retrouve avec l'erreur "SMTP connect() failed.". Alors bien évidemment je comprend le message, mais je n'arrive pas à trouver de solution.
Le site en question est hébergé chez 1and1 (je regrette d'ailleurs...).
Voici la partie de mon script gérant le paramétrage (tout est dans le constructeur pour mes test, je verrai pour refactorer plus tard):
public function __construct($subject, $body, $mailto = null, $sender = null){
require_once(WEBROOT . 'include/phpMailer/class.phpmailer.php');
require_once(WEBROOT . 'include/phpMailer/class.smtp.php');
$config = Config::getInstance(); // Je récupère mes infos de configuration
$this->mailer = new PHPMailer();
$this->subject = $subject;
$this->body = $body;
$this->sender = (is_null($sender)) ? $config->get('smtp_user') : $sender;
$this->mailto = $mailto;
$this->mailer->IsSMTP();
$this->mailer->Host = $config->get('smtp_host'); // "auth.smtp.1and1.fr"
$this->mailer->SMTPAuth = true;
$this->mailer->Username = $this->sender;
$this->mailer->Password = $config->get('smtp_pass');
$this->mailer->SMTPSecure = $config->get('smtp_secure'); // "SSL"
$this->mailer->Port = $config->get('smtp_port'); // 465
$this->mailer->Priority = 3;
$this->mailer->CharSet = 'UTF-8';
$this->mailer->Encoding = '8bit';
$this->mailer->ContentType = 'text/html; charset=utf-8\r\n';
$this->mailer->WordWrap = 900;
$this->mailer->SetFrom($config->get('smtp_user'), 'Le nom de mon site');
/* ici je met mon adresse email personnelle afin de tester, et évidemment là j'ai mis "mon.adresse@test.fr" intentionnellement pour ce post */
$this->mailer->AddAddress('mon.adresse@test.fr');
$this->mailer->isHTML(true);
$this->mailer->Subject = $this->subject;
$this->mailer->Body = $this->body;
$this->mailer->AltBody = strip_tags($this->body);
// Envoie de l'email via une fonction appelée après l'instanciation de ma classe.
}
Merci d'avance.
Cyp'
salut,
le soucis c'est que ce que tu nous fournis, c'est un fichier de config. Il nous faudrai la méthode de connexion et d'envoie
@flo3376: Tout est ici, la méthode d'envoie se résume à ça:
public function sendEmail(){
$result = $this->mailer->send();
if (!$result) {
echo $this->mailer->ErrorInfo;
$this->mailer->SmtpClose();
return false;
}
echo "Message envoyé avec succès";
$this->mailer->SmtpClose();
return true;
}
Pour ce qui est la méthode de connexion, c'est la librairie PHPMailer qui s'en charge (je ne vais pas débugger leurs scripts lol).
Sur le site 1&1 je vois :
outgoing smtp server = smtp.1and1.com
port (tls) = 587
authentification : yes
As-tu testé cette config ?
@huggy: Pas celle-ci non, mais j'ai été sur 1and1 et j'ai vu une autre config' faudrait savoir ce qu'ils veulent... Je vais essayer de ce pas ;)
EDIT: Voilà ce que j'ai en retour:
2015-03-27 07:42:33 SMTP ERROR: Failed to connect to server: php_network_getaddresses: getaddrinfo failed: Name or service not known (0) 2015-03-27 07:42:33 SMTP connect() failed. SMTP connect() failed.
EDIT 2: Voilà ce que donne 1and1 pour la configuration (2 configs différentes visiblement, et aucune ne fonctionne).
-> https://assistance.1and1.fr/mail-c65618/adresses-e-mail-1and1-c65666/logiciels-de-messagerie-c85133/configurer-un-compte-e-mail-1and1-sur-un-logiciel-de-messagerie-a792332.html/
-> https://assistance.1and1.fr/securite-c85037/securite-des-e-mails-c85227/activer-le-protocole-ssl-dans-mozilla-thunderbird-a792818.html/
@Brandon-xprodeur: Ah non je n'ai pas testé avec Hostinger, mais j'ai configuré un host gmail, j'ai essayé et pareil je n'ai rien... A se taper la tête par terre cette histoire ! Est-ce que cela ne viendrait-il pas de PHPMailer ?
Sinon, comment conseillerais-tu de m'y prendre pour Hostinger ? :)
La fonction mail de php est déja configurée chez eux (1&1), il suffit de l'appeler
fais le test qu'ils indiquent ici et dis nous si ça marche.
Je vais tester, mais je souhaitais utiliser une librairie afin de gérer l'envoie "massif" d'email et j'ai peur qu'avec la fonction mail() ça ne plante :/