私はPythonで新しいです。 実際には、私はpythonで特集された電子メールを送信しようとしています:html本文、テキスト代替本文、および添付ファイル。phpMailer phpクラスはPythonと同じですか?
だから、私はこのtutorialを見つけ、Gmailの認証(チュートリアルがhereを見つけた)
私は気圧持っているコードでそれを適応してきた、それは次のようになります。
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()
、それが動作します..今 そして添付ファイルを追加できません(this投稿から)
なぜ、phpMailer for PHPのようなpythonクラスがないのですか? 中規模のpythonプログラマーが添付ファイルとaltテキスト本文を持つhtml電子メールを送信するのはとても簡単なので、クラスは不要ですか? 私はそれを見つけられなかったからですか?
もし私がそのようなクラスを書くことができるのであれば、私は十分にPythonでうまくいくでしょう、それは誰かにとって有益でしょうか?
add in exampleあなたは勝者を持っています! – YHVH
うわー、それは素晴らしいです! あなたのモジュールはGmailのSMTP経由でメール送信を許可していますか? どこでsmtpポートを指定する必要がありますか(smtplibでserver = smtplib.SMTP( "smtp.gmail.com"、587)など) – Strae
@DaNiel: 非常に良い点、ありがとうございます。 Mailerクラス( 'sender = Mailer( 'localhost'、port = 587) ')でポートを指定できる更新版を追加しました http://pypi.python.org/pypi/mailer/0.4 –