pythonはSMTPメール送信機能を実現します。
フレームにメール送信機能を追加したいと思っていますので、python下のメール送信機能を整理します。
まずpythonはメールの送信をサポートしています。SMtpライブラリを内蔵しています。テキストの送信、HTMLの送信、添付ファイルの添付をサポートしています。その後はメールボックス、163、qq、新浪などのメールボックスがデフォルトでSMTPサービスをオフにします。手動で開いてから送信者メール、許可パスワードを通じて送信者SMTPサービスを通じて送信します。
コードは以下の通りです
msg=MIMEText(「SMtpメール送信機能をテストする」、「plin」、「utf-8」)
内容をHTML形式に修正し、「playin」を「html」に変更しました。
最後に添付のメールです。
コードは以下の通りです
まずpythonはメールの送信をサポートしています。SMtpライブラリを内蔵しています。テキストの送信、HTMLの送信、添付ファイルの添付をサポートしています。その後はメールボックス、163、qq、新浪などのメールボックスがデフォルトでSMTPサービスをオフにします。手動で開いてから送信者メール、許可パスワードを通じて送信者SMTPサービスを通じて送信します。
コードは以下の通りです
#!/usr/bin/env python
# -*- coding: utf_8 -*-
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.multipart import MIMEBase
from email import encoders
from email.header import Header
from email.utils import parseaddr, formataddr
import smtplib
class SendEmail:
outbox = "[email protected]"
#
password = "wxqcl258258"
#
inbox = "[email protected]"
#
smtp_server = "smtp.163.com"
#
def __init__(self):
pass
@classmethod
def _format_address(cls, text):
name, address = parseaddr(text)
return formataddr((Header(name, "utf-8").encode(), address))
@classmethod
def send_email_text(cls):
msg = MIMEText(" smtp ", "plain", "utf-8")
# :
# :
# :
msg["From"] = SendEmail._format_address(" 163 <%s>" % SendEmail.outbox)
#
msg["To"] = SendEmail._format_address(" <%s>" % SendEmail.inbox)
#
msg["Subject"] = Header(" SMTP ", "utf-8").encode()
#
try:
server = smtplib.SMTP(SendEmail.smtp_server, 25)
# smtp
# server.set_debuglevel(1)
# debug
server.login(SendEmail.outbox, SendEmail.password)
# smtp
server.sendmail(SendEmail.outbox, [SendEmail.inbox], msg.as_string())
#
server.quit()
print " "
except Exception, e:
print str(e)
print " "
if __name__ == '__main__':
SendEmail.send_email_text()
これはテキストのみの内容で、HTML形式に対応できる内容、修正内容は以下の通りです。msg=MIMEText(「SMtpメール送信機能をテストする」、「plin」、「utf-8」)
内容をHTML形式に修正し、「playin」を「html」に変更しました。
最後に添付のメールです。
コードは以下の通りです
@classmethod
def send_email_multipart(cls):
msg = MIMEMultipart()
msg["From"] = SendEmail._format_address(" 163 <%s>" % SendEmail.outbox)
#
msg["To"] = SendEmail._format_address(" <%s>" % SendEmail.inbox)
#
msg["Subject"] = Header(" SMTP ", "utf-8").encode()
#
msg.attach(MIMEText(" smtp ", "plain", "utf-8"))
with open("E:\\work\\python project\\CreateProject\\20160421140953.xml", "rb") as f:
# MIME
mime = MIMEBase("xml", "xml", filename=" .xml")
#
mime.add_header('Content-Disposition', 'attachment', filename=" .xml")
mime.add_header('Content-ID', '<0>')
mime.add_header('X-Attachment-Id', '0')
# :
mime.set_payload(f.read())
# Base64 :
encoders.encode_base64(mime)
# MIMEMultipart:
msg.attach(mime)
try:
server = smtplib.SMTP(SendEmail.smtp_server, 25)
# smtp
# server.set_debuglevel(1)
# debug
server.login(SendEmail.outbox, SendEmail.password)
# smtp
server.sendmail(SendEmail.outbox, [SendEmail.inbox], msg.as_string())
#
server.quit()
print " "
except Exception, e:
print str(e)
print " "
以上がpythonメール送信機能の具体的な実現コードです。皆さんの学習に役に立つことを願っています。