OVH Community, votre nouvel espace communautaire.

PHPMailer, SMTP, TLS/SSL et hébergement mutualisé


Funto
04/06/2016, 13h48
Merci pour vos réponses.
Si j'ai bien compris (corrigez-moi autrement svp) :
- un serveur d'hébergement mutualisé ne peut pas communiquer avec un serveur mail OVH "by design", vous confirmez ?
- donc la seule option qui me reste est d'envoyer le mail directement depuis mon serveur mutualisé :
1) soit via mail() (qui utilise sendmail)
2) soit via PHPMailer qui utilise mail()
3) soit via PHPMailer qui utilise sendmail directement comme dans cet exemple : https://github.com/PHPMailer/PHPMail.../sendmail.phps

Je n'ai pas trouvé comment préciser de port ou de protocole SSL ou TLS via ces méthodes => est-ce seulement possible ?

Ensuite, la grande question aussi : le message " Le domaine ovh.net n'a pas chiffré ce message." que me donne Gmail lorsque j'envoie un mail avec PHPMailer qui utilise mail() (méthode 2) veut-il bien dire que je n'ai pas chiffré en TLS ou en SSL, alors que j'aurais dû ? (le lien que me donne Gmail : https://support.google.com/mail/answ...tls&hl=fr&rd=1 ).

Merci d'avance.

Nowwhat
03/06/2016, 15h28
Citation Envoyé par Boulvard
....
Après pour chiffrer un email envoyé via Mail Php (sans passer par un smtp), j'avoue ne pas savoir.
Rien de très sorcier

Par exemple :
smtp.gmail.com
Porte 465
SSL

Ça donne ça : ssl://smtp.gmail.com:465

PHPMailer est capable de "comprendre" "ssl://smtp.gmail.com" et porte"465".
Il suffit d'ajouter le login et mot de passe et ça roule.

Attention : Ce qui concerne la porte "587" : OVH n'accepte que le "ssl0.ovh.net" (comme nos FAI bloquent toutes les "25" sauf leur propre serveur mail).
Exception fait jetmail.tld, un client d'OVH pour envoyer des mails en volume.

Boulvard
03/06/2016, 13h33
Ty pour les précisions ! J'aime bien apprendre des trucs.

fritz2cat
03/06/2016, 13h19
Citation Envoyé par Boulvard
De mémoire le port 587 = sans chiffrement. C'est le port 465 pour envoyé des mails passant par le ssl0 avec chiffrage à la clé ce me semble.

Après pour chiffrer un email envoyé via Mail Php (sans passer par un smtp), j'avoue ne pas savoir.
Non pas exactement.
- 465 c'est du protocole SSL directement dès l'ouverture de la session. Avec les vulnérabilités POODLE et compagnie, l'abandon de SSLv3 et antérieures est en cours. Le port 465 va l'être aussi.
- 587 (tout comme 25) la conversation commence en clair et les deux partenaires négocient le basculement en TLS ; la session est alors réouverte en mode chiffré dans la même connexion.

La différence entre 25 et 587 ?
- sur le port 25 (smtp) on s'attend à des transmissions entre serveurs ; un particulier sur son PC à la maison devrait de moins en moins utiliser ce port et de moins en moins soumettre des mails sans s'être authentifié au préalable (login/pass)
- sur le port 587 (submission) on s'attend à ne recevoir que des connexions d'utilisateurs qui fournissent un login/pass pour envoyer leur courrier sortant. Il n'y a pas de relais de mail entre serveurs par ce chemin-là.
Le protocole utilisé "sur le fil" (SMTP) est le même dans les deux cas.

fritz2cat
03/06/2016, 12h33
En fait tu mélanges tout.
Le fait d'envoyer ton message via mail() ou via SMTP chiffré sur le port 587 va juste déterminer si on message sortant va prendre le chemin de gauche ou celui de droite dans l'infrastructure OVH.
Les en-têtes vont différer légèrement, et l'adresse de retour en cas d'erreur va changer également.
Dans le cas de mail() tu pourras sans problèmes envoyer 500, 1000 ou 2000 mails, mais ils seront distribués à un rythme lent (1 par seconde ou même par 3 secondes). Les messages en échec (adresse de destinataire incorrecte par ex.) reviendront dans le manager et non dans ta boîte mail. Si le taux d'échec est trop important, alors l'envoi des messages encore en attente va être interrompu.
Dans le cas de SMTP/587/TLS à partir de ton site web, ça part tout de suite mais il y a ce quota de 200 destinataires x mails par heure et par compte qui joue.
Par contre l'environnement ssh du mutualisé ne te permet pas d'ouvrir de connexions vers des serveurs (sans doute pour éviter les abus)

Ces deux chemins distincts aboutissent finalement dans une sortie commune, les mail-out.
Il semble bien que certains sont capables de passer en SSL lors de envois, et d'autres pas.

Exemple dans mes logs lors de la réception d'un message avec SSL
May 29 10:46:30 v2 postfix/smtpd[13291]: connect from 4.mo53.mail-out.ovh.net[188.165.36.167]
May 29 10:46:30 v2 postfix/smtpd[13291]: Anonymous TLS connection established from 4.mo53.mail-out.ovh.net[188.165.36.167]: TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)
et d'un autre sans SSL
Jun 3 11:40:13 v2 postfix/smtpd[2591]: connect from 2.mo157.mail-out.ovh.net[178.33.109.180]
(et il n'y a pas l'autre message)
Frédéric

Boulvard
03/06/2016, 10h42
De mémoire le port 587 = sans chiffrement. C'est le port 465 pour envoyé des mails passant par le ssl0 avec chiffrage à la clé ce me semble.

Après pour chiffrer un email envoyé via Mail Php (sans passer par un smtp), j'avoue ne pas savoir.

Funto
02/06/2016, 23h37
Bonjour,

Client d'un hébergement mutualisé (offre "pro 2014" d'après le tableau de bord OVH), je développe un site web pro en PHP.
Ce site doit pouvoir envoyer des e-mails à des clients, et j'utilise PHPMailer pour ce faire.

Le problème : je voudrais pouvoir envoyer des e-mails sans avoir de message d'avertissement à la réception sur le chiffrement de mes e-mails.

Apparemment, il est possible d'envoyer un e-mail via la méthode mail() en PHP (qui du coup utilise le serveur sur lequel le code s'exécute), mais lorsque je reçois un de ces e-mails sur ma boîte Gmail, j'ai un petit cadenas rouge ouvert avec le message "Le domaine ovh.net n'a pas chiffré ce message." avec un lien vers cette page : https://support.google.com/mail/answ...tls&hl=fr&rd=1

J'ai donc voulu faire en sorte que le serveur exécutant le code PHP demande au serveur de mail ( smtp.pointsmartphone.fr ou ssl0.ovh.net ) d'envoyer un e-mail, seulement cette méthode ne fonctionne que lorsque j'exécute mon code en local (pas sur le serveur OVH).
J'ai en effet remarqué que sur mon PC Windows la commande suivante fonctionne :
Code:
telnet ssl0.ovh.net 587
=> j'obtiens bien une réponse

Mais en me connectant via putty à mon serveur virtuel Linux :
Code:
pointsmaoi@ssh1.720.ha.ovh.net ~ $ telnet ssl0.ovh.net 587
Trying 213.186.33.20...
telnet: Unable to connect to remote host: Network is unreachable
Il semble donc qu'il soit impossible depuis un serveur d'hébergement mutualisé d'envoyer un e-mail "chiffré par le domaine ovh.net", pour reprendre les termes de Gmail ??

Merci d'avance.