Quand j'utilise PHPMailer pour envoyer du courrier via Postfix, j'utilise la configuration par défaut avec ces modifications :
# SMTP from other servers to yours
smtpd_tls_key_file = /etc/postfix/myletsencryptcert.key
smtpd_tls_cert_file = /etc/postfix/myletsencryptcert.crt
smtpd_tls_CAfile = /etc/postfix/myletsencryptcert.crt
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_mandatory_protocols=!SSLv2,!SSLv3
smtpd_tls_protocols=!SSLv2,!SSLv3
smtpd_tls_loglevel = 1
smtpd_tls_session_cache_database =
btree:/var/lib/postfix/smtpd_tls_session_cache
Lorsque j'utilise cette configuration, et que je lance PHPMailer il est dit que la connexion a échoué, juste après avoir fait le STARTTLS
commande. Mon PHPMailer config est
$mail = new PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'localhost';
//$mail->SMTPAuth = true;
$mail->Username = 'noreply@example.com';
//$mail->Password = 'passwordwhichissecretobviously';
$mail->SMTPSecure = 'tls';
$mail->Port = 25;
$mail->SMTPAutoTLS = false;
$mail->setFrom("noreply@example.com", "Some person");
$mail->addAddress("sperson@example.com");
$mail->isHTML(true);
$mail->Subject = "Web Development";
$mail->Body = "
Some random HTML message
";
$mail->AltBody = "some normal message without HTML";
$mail->XMailer = "0";
$mail->CharSet = 'UTF-8';
$mail->Encoding = 'base64';
$mail->DKIM_domain = 'example.com';
$mail->DKIM_private = '/right/path/to/dkimkey/which/works/properly/dkim.key';
$mail->DKIM_selector = 'default';
$mail->DKIM_passphrase = '';
$mail->DKIM_identity = $mail->From;
$mail->DKIM_copyHeaderFields = false;
Et même si j'utilise telnet et que je le fais, j'obtiens après l'exécution de la commande STARTTLS.
J'ai découvert qu'en utilisant ceci, je peux envoyer le courrier avec PHPMailer :
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer_name' => false
)
);
Mais je pense que ce serait un problème de sécurité. Comment faire autrement pour que cela fonctionne ?
0 votes
@anx, vous voulez dire que je dois enlever les guillemets ?
2 votes
@anx, vous voulez dire utiliser le vrai nom de domaine que le cert ssl a ? Wow, ça a réglé le problème lol. Je suis tellement confus maintenant. S'il vous plaît, postez-le comme réponse. Oh mon dieu, je viens de perdre deux jours entiers sur ce sujet, avec un mal de tête. Je mérite les votes négatifs que je vais recevoir pour cette question.
0 votes
Mais cela ne fonctionne toujours pas avec telnet.