J'essaie d'envoyer un e-mail à partir de mon compte d'entreprise Office365 en utilisant python. Je suis nouveau sur python. Ce code fonctionnait auparavant lors de l'utilisation de mon compte Hotmail, mais maintenant que j'ai besoin d'envoyer des informations confidentielles, je dois utiliser mon e-mail d'entreprise.
J'ai essayé quelques trucs.
535 5.7.3 Authentication unsuccessful
Je ne suis pas clair sur la partie du certificat, mais mes étapes comprennent la recherche en ligne pour savoir comment exporter un certificat. En utilisant le navigateur chrome, microsoftonline.com possède un certificat de chaîne. Je peux exporter la racine et le niveau juste en dessous de la racine mais pas le dernier niveau. Je ne sais pas comment passer ces deux fichiers, j'ai donc simplement passé le certificat racine. À ce stade, j'obtiens l'erreur: ssl.SSLError: [SSL] PEM lib (_ssl.c:3309)
je suis coincé à ce stade. Toute aide est appréciée. Code utilisé ci-dessous
import smtplib
mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls(certfile='office365.cer')
mailserver.ehlo()
mailserver.login('[email protected]', 'password')
mailserver.sendmail('[email protected]','[email protected]','python email')
mailserver.quit()
Eh bien, vous y êtes presque. Le code suivant fera l'affaire:
import smtplib
mailserver = smtplib.SMTP('smtp.office365.com',587)
mailserver.ehlo()
mailserver.starttls()
mailserver.login('[email protected]', 'password')
mailserver.sendmail('[email protected]','[email protected]','python email')
mailserver.quit()
Utilisez les liens suivants pour plus d'informations:
http://www.aventistech.com/2016/03/07/python-send-email-via-office-365-tls/
https://docs.python.org/3/library/smtplib.html
https://Gist.github.com/jasonjoh/3ec367594c3fa662ee983a617bdc7deb
J'ai trouvé une bibliothèque qui fonctionne pour moi:
https://github.com/Narcolapser/python-o365
https://pypi.python.org/pypi/O365
Installez-le en utilisant PIP puis:
from O365 import Message
o365_auth = ('[email protected]','YourPassword')
m = Message(auth=o365_auth)
m.setRecipients('[email protected]')
m.setSubject('I made an email script.')
m.setBody('Talk to the computer, cause the human does not want to hear it any more.')
m.sendMessage()
Le code a légèrement changé. Le code ci-dessus ne fonctionnera pas. Veuillez utiliser le code ci-dessous. Référence
from O365 import Account
credentials = ('client_id', 'client_secret')
account = Account(credentials)
m = account.new_message()
m.to.add('[email protected]')
m.subject = 'Testing!'
m.body = "George Best quote: I've stopped drinking, but only while I'm asleep."
m.send()