La méthode préférée pour le transfert des messages SMTP est en utilisant le serveur SMTP de votre FAI. Le travail de localisation Message transfer agent de Google est géré par ces serveurs.
Pour utiliser directement les serveurs de Google, vous devez rechercher le MX records fourni par google via DNS. À partir d'un programme Python
, une bibliothèque DNS est nécessaire. Voici un exemple, en utilisant dnspython
, une boîte à outils DNS A pour Python.
>>> from dns import resolver
>>> mxrecs = resolver.query('gmail.com', 'MX')
>>> [mx for mx in mxrecs]
[<DNS IN MX rdata: 20 alt2.gmail-smtp-in.l.google.com.>,
<DNS IN MX rdata: 40 alt4.gmail-smtp-in.l.google.com.>,
<DNS IN MX rdata: 30 alt3.gmail-smtp-in.l.google.com.>,
<DNS IN MX rdata: 10 alt1.gmail-smtp-in.l.google.com.>,
<DNS IN MX rdata: 5 gmail-smtp-in.l.google.com.>]
>>> mx.exchange.to_text()
'gmail-smtp-in.l.google.com.'
>>> mx.preference
5
>>>
Le serveur de messagerie d'échange préféré est ici gmail-smtp-in.l.google.com
, qui peut être utilisé avec smtplib
pour transférer des messages.
J'ai essayé smtp = smtplib.SMTP ('smtp.gmail.com', 587) smtp.login ('[email protected] », 'pass') i obtenu l'erreur suivante " raise SMTPException ("extension SMTP AUTH non supportée par le serveur.") SMTPException: extension SMTP AUTH non supportée par le serveur " – Neveen
Si vous avez lu le lien, vous verrez que vous devez utiliser TLS ou SSL. Je crois que SMTPlib supporte TLS, donc ça devrait aller, tant que vous démarrez la session TLS. – Donnie
Merci beaucoup pour votre aide. Mais comment puis-je démarrer une session TLS? – Neveen