Ich bin neu mit Python .. Eigentlich versuche ich vorgestellten E-Mail mit Python senden: HTML-Text, Text alternative Körper und Anhang.Wo ist der phpMailer php Klasse für Python?
Also, ich diese tutorial und angepasst es mit dem gmail-Authentifizierung gefunden habe (Tutorial here gefunden)
Der Code i atm haben, ist, dass:
def createhtmlmail (html, text, subject):
"""Create a mime-message that will render HTML in popular
MUAs, text in better ones"""
import MimeWriter
import mimetools
import cStringIO
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import COMMASPACE, formatdate
from email import Encoders
import os
out = cStringIO.StringIO() # output buffer for our message
htmlin = cStringIO.StringIO(html)
txtin = cStringIO.StringIO(text)
writer = MimeWriter.MimeWriter(out)
#
# set up some basic headers... we put subject here
# because smtplib.sendmail expects it to be in the
# message body
#
writer.addheader("Subject", subject)
writer.addheader("MIME-Version", "1.0")
#
# start the multipart section of the message
# multipart/alternative seems to work better
# on some MUAs than multipart/mixed
#
writer.startmultipartbody("alternative")
writer.flushheaders()
#
# the plain text section
#
subpart = writer.nextpart()
subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
pout = subpart.startbody("text/plain", [("charset", 'us-ascii')])
mimetools.encode(txtin, pout, 'quoted-printable')
txtin.close()
#
# start the html subpart of the message
#
subpart = writer.nextpart()
subpart.addheader("Content-Transfer-Encoding", "quoted-printable")
#
# returns us a file-ish object we can write to
#
pout = subpart.startbody("text/html", [("charset", 'us-ascii')])
mimetools.encode(htmlin, pout, 'quoted-printable')
htmlin.close()
#
# Now that we're done, close our writer and
# return the message body
#
writer.lastpart()
msg = out.getvalue()
out.close()
return msg
import smtplib
f = open("/path/to/html/version.html", 'r')
html = f.read()
f.close()
f = open("/path/to/txt/version.txt", 'r')
text = f.read()
subject = "Prova email html da python, con allegato!"
message = createhtmlmail(html, text, subject)
gmail_user = "[email protected]"
gmail_pwd = "thegmailpassword"
server = smtplib.SMTP("smtp.gmail.com", 587)
server.ehlo()
server.starttls()
server.ehlo()
server.login(gmail_user, gmail_pwd)
server.sendmail(gmail_user, "[email protected]", message)
server.close()
und das funktioniert .. jetzt nur vermisse den Anhang. Und ich bin nicht in der Lage, den Anhang hinzuzufügen (this Beitrag)
Also, warum gibt es keine Python-Klasse wie PHPMailer für PHP? Liegt es daran, dass für einen mittelfähigen Python-Programmierer eine HTML-E-Mail mit Anhang und altem Text so einfach zu versenden ist, dass eine Klasse nicht benötigt wird? Oder ist, weil ich es gerade nicht gefunden habe?
Wenn ich in der Lage wäre, eine Klasse wie diese zu schreiben, wenn ich genug mit Python gut genug sein würde, wäre das für jemanden nützlich?
in einem Beispiel hinzufügen alternativer Text und du hast einen Gewinner! – YHVH
Wow, das ist großartig! Ermöglicht Ihr Modul das Senden von E-Mails über den Google Mail-SMTP-Server? Wo sollte ich den SMTP-Port angeben (z. B. server = smtplib.SMTP ("smtp.gmail.com", 587) mit smtplib) – Strae
@DaNiel: Sehr guter Punkt, danke. Ich habe eine aktualisierte Version hinzugefügt, mit der Sie den Port in der Mailer-Klasse angeben können ('sender = Mailer ('localhost', port = 587) ') http://pypi.python.org/pypi/mailer/0.4 –