L'exemple de code que vous utilisez crée un message MIME en plusieurs parties. Tout est un attachement, y compris le corps du message. Si vous voulez simplement envoyer un simple message en texte simple ou en HTML, vous n'avez besoin d'aucun des éléments MIME. Cela ajoute simplement de la complexité. Vous voyez ce bit dans l'appel sendmail() de votre exemple où il est dit msg.as_string()? Eh bien, cela convertit simplement les objets MIME que vous avez créés en texte. Il est assez facile de spécifier le texte vous-même, si vous traitez un texte pour commencer.
La fonction ci-dessous est similaire au code I utilisé pour l'envoi d'un fichier journal dans un script que j'ai écrit. Il prend un corps de texte brut et le convertit en HTML préformaté (pour mieux fonctionner dans Outlook). Si vous souhaitez conserver le texte en clair, supprimez la ligne qui ajoute les balises HTML et remplacez l'en-tête Content-Type par "text/plain".
import smtplib
def sendmail(sender, recipient, subject, body, server="localhost"):
"Sends an e-mail to the specified recipient."
body = ("<html><head></head><body><pre>%s</pre></body></html>" %
body.replace("&", "&").replace("<", "<"))
headers = ["From: " + sender,
"Subject: " + subject,
"To: " + recipient,
"MIME-Version: 1.0",
"Content-Type: text/html"]
headers = "\r\n".join(headers)
session = smtplib.SMTP(server)
session.sendmail(sender, recipient, headers + "\r\n\r\n" + body)
session.quit()
Post ce que vous avez –
Dominic, merci pour la réponse. J'ai continué à jouer en commentant différentes lignes et j'ai été capable de recommencer à le faire fonctionner. Il s'avère que je devais laisser dans la ligne "msg.attach (MIMEText (texte))" qui me confond encore un peu, parce que je lis la partie msg.attach pour joindre des fichiers, pas le corps de l'email. Si quelqu'un peut expliquer cela, ce serait très apprécié. – SeanK137
L'exemple de code que vous utilisez crée un message MIME en plusieurs parties. EVerything est une pièce jointe, y compris le corps du message. Si vous voulez simplement envoyer un simple message en texte simple ou en HTML, vous n'avez besoin d'aucun des éléments MIME. Je posterai une réponse avec du code. – kindall