Smtp un coup oui, un coup non

Bonjour,
Comme beaucoup, j'ai des soucis avec l'envoi via smtp d'OVH sur du mutualisé :
Avec exactement le même code lancé plusieurs fois de suite, voici les résultats du log du send de PHPMailer

05/08/2024 09:54:17 to:monemail@mail.com, OK
05/08/2024 09:54:25 to:monemail@mail.com, OK
05/08/2024 09:54:32 to:monemail@mail.com, OK
05/08/2024 09:54:41 to:monemail@mail.com, OK
05/08/2024 09:55:04 to:monemail@mail.com, SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
05/08/2024 09:55:16 to:monemail@mail.com, SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
05/08/2024 09:57:56 to:monemail@mail.com, OK
05/08/2024 09:58:03 to:monemail@mail.com, SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting
05/08/2024 09:58:13 to:monemail@mail.com, OK
05/08/2024 09:58:20 to:monemail@mail.com, OK
05/08/2024 10:02:03 to:monemail@mail.com, OK

C'est complètement aléatoire : un coup ça se connecte au SMTP, un coup ça ne se connecte pas.
Est-ce que quelqu'un a une idée ?


Est-ce que quelqu'un a une idée ?


Bonjour,

Avez-vous été voir https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting ?

Avez-vous vu ceci:

SMTP::DEBUG_CONNECTION (3): As 2, but also show details about the initial connection; only use this if you're having trouble connecting (e.g. connection timing out)
...

Set this option by including a line like this in your script:

$mail->SMTPDebug = SMTP::DEBUG_SERVER;

$mail->SMTPDebug = SMTP::DEBUG_SERVER;


Oui, j'avais mis ce paramètre il y a quelques mois quand j'avais développé. Je l'ai remis et voilà le résultat que cela donne :

2024-08-05 09:28:42 SERVER -> CLIENT:
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Pas beaucoup plus parlant :)

Par contre SMTP::DEBUG_CONNECTION m'a donné une idée : jouer sur le timeout.

2024-08-05 09:31:50 Connection: opening to ssl0.ovh.net:587, timeout=300, options=array()
2024-08-05 09:31:50 Connection: opened
2024-08-05 09:31:51 SERVER -> CLIENT:
2024-08-05 09:31:51 Connection: closing due to error
2024-08-05 09:31:51 Connection: closed
SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

Je l'ai monté à 2000 et j'ai cru pendant un moment que ça avait amélioré les choses. Mais ça bloque encore souvent et quand ça bloque, c'est quasi instantané, c'est-à-dire largement avant le timeout.

Pour l'instant, la seule solution de contournement que j'ai, c'est de configurer PHPMailer pour ne pas utiliser le smtp. Il s'agit d'un site qui gère des inscriptions à un club sportif et j'ai besoin d'être assuré que les adhérents reçoivent le dossier.

Je pense que vous n'y êtes pour rien.
Ces blocages intermittents ne peuvent être dus qu'à la mauvaise configuration (par OVH) de certains serveurs dans le pool d'exécution, où les règles de firewall ne sont pas conformes.

Augmenter le timeout ne sert effectivement à rien. Vous pourriez même le baisser à 20 ou 30, ce qui est plus que suffisant pour envoyer un mail.

Essayez le port 5025 qui était historiquement en service pour bypasser le port 25 chez OVH, avant l'émergence de 587.
Mais OVH ne le documente plus nulle part. Si ça fonctionne, considérez cela comme temporaire.

Vous n'avez ni dévoilé votre nom de domaine, ni votre cluster d'hébergement.
Je vous invite donc à faire un ticket incident auprès d'OVH (incident=quelque chose qui devrait fonctionner mais ne fonctionne pas). Joignez le plus possible d'éléments probants et svp ne pasquez pas les infos.

Je suis d'ailleurs en train de réfléchir que ça arrive également assez souvent quand j'utilise un webmail Roundcube pour envoyer ou répondre à des emails. C'est assez fréquent qu'il faille s'y prendre à plusieurs reprises pour qu'un email soit envoyé.


ça arrive également assez souvent quand j'utilise un webmail Roundcube pour envoyer ou répondre à des emails.


Je dirais que votre cas est atypique et préoccupant.

Roundcube fait-il des messages d'erreur ? C'est uniquement pour envoyer qu'il y a des problèmes, mais pas pour lire, classer des e-mails ?

Bonjour,

question con, mais pourquoi vouloir utiliser smtp() plutôt que mail() ?

Cordialement, janus57

Les messages d'erreur de RoundCube sont quand j'envoie des emails ou quand je réponds à des emails, donc idem, c'est quand le smtp qui est sollicité.

Eviter de se retouver dans des spams par exemple si on est sur la même IP qu'un emaileur fou. Pouvoir avoir des signatures DKIM et SPF qui sont utilisées par certains serveurs pour s'assurer de l'identité de l'expéditeur.

Bonjour,


Pouvoir avoir des signatures DKIM

c'est le cas depuis très longtemps avec PHPMailer


SPF

c'est le cas aussi, cela fait partie des serveurs de mails OVH


Eviter de se retouver dans des spams par exemple si on est sur la même IP qu'un emaileur fou

sauf que cela peut arriver aussi avec un compte mail normale.

Cordialement, janus57

En 2020, dans un autre fil, vous expliquez qu'il n'est pas possible de faire du DKIM sur du mutualisé. Ca a changé depuis ?


Ca a changé depuis ?


Oui,

soit vous attendez quelques semaines que OVH l'active progressivement sur tous les hébergements, soit vous suivez le guide pour activer DKIM tout de suite

https://help.ovhcloud.com/csm/fr-dns-zone-dkim?id=kb_article_view&sysparm_article=KB0058101

Bonjour,


En 2020, dans un autre fil, vous expliquez qu'il n'est pas possible de faire du DKIM sur du mutualisé. Ca a changé depuis ?

alors il y a mutu et mutu, avant on parlé des boites mails (ce qui n'est plus vrai maintenant).

Mais si vous envoyer les mail via PHPMailer, cela est possible depuis aussi longtemps que PHPMailer inclus le fait de pouvoir utiliser sa propre clé DKIM.

Cordialement, janus57