您的位置:首页 > 编程语言 > Python开发

Python创建自己的邮箱应用(1)

2017-01-09 13:42 295 查看
在python中使用smtplib进行电子邮件的发送.

发送纯文本邮件

# -*- coding: UTF-8 -*-

import smtplib
from email.mime.text import MIMEText
from email.header import Header

class sendEmailController:

def __init__(self, mail_host, mail_user, mail_pass):
self.mail_host = mail_host
self.mail_user = mail_user
self.mail_pass = mail_pass

def senTextEmail(self, title, sender, receivers, content):
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
meesage = MIMEText(content, 'plain', 'utf-8')

froms =  u'%s <%s>' % (sender, self.mail_user)
meesage['From'] = froms
meesage['To'] = receivers

meesage['Subject'] = Header(title, 'utf-8')

self.send(self.mail_user, receivers, meesage)

def send(self, sender, receivers, message):
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(self.mail_host, 25)
smtpObj.set_debuglevel(1)
smtpObj.login(self.mail_user, self.mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
smtpObj.quit()
print("发送成功")
except smtplib.SMTPException:
print("发送失败")

if __name__ == '__main__':

sendEC = sendEmailController('smtp.163.com', '发送人邮箱', '邮箱密码')
sendEC.senTextEmail('会议记录', '163邮箱',  '接收人邮箱', '把今天的会议记录发我')




发送Html邮件

# -*- coding: UTF-8 -*-

import smtplib
from email.mime.text import MIMEText
from email.header import Header

class sendEmailController:

def __init__(self, mail_host, mail_user, mail_pass):
self.mail_host = mail_host
self.mail_user = mail_user
self.mail_pass = mail_pass

def senTextEmail(self, title, sender, receivers, content):
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码

self.send(self.mail_user, receivers, self.message('plian',title,sender,receivers,content))

def sendHtmlEmail(self, title, sender, receivers, content):
self.send(self.mail_user, receivers, self.message('html',title,sender,receivers,content))

def message(self, subtype, title, sender, receivers, content):
# 三个参数:第一个为文本内容,第二个 plain 设置文本格式,第三个 utf-8 设置编码
meesage = MIMEText(content, subtype, 'utf-8')

froms = u'%s <%s>' % (sender, self.mail_user)
meesage['From'] = froms
meesage['To'] = receivers

meesage['Subject'] = Header(title, 'utf-8')

return meesage

def send(self, sender, receivers, message):
try:
smtpObj = smtplib.SMTP()
smtpObj.connect(self.mail_host, 25)
smtpObj.set_debuglevel(1)
smtpObj.login(self.mail_user, self.mail_pass)
smtpObj.sendmail(sender, receivers, message.as_string())
smtpObj.quit()
print("发送成功")
except smtplib.SMTPException:
print("发送失败")

if __name__ == '__main__':

msg = """
<html><body>
<p><a href="http://www.baidu.com">百度链接</a></p>
</body></html>
"""

sendEC = sendEmailController('smtp.163.com','发送人邮箱', '邮箱密码')
sendEC.sendHtmlEmail('会议记录', '163邮箱',  '接收人邮箱', msg)


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 邮箱 电子邮件