python实现SMTP邮件服务

it2024-07-31  46

python实现SMTP邮件服务

1、概念:SMTP(Simple Mail Transfer Protocol)及简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由他来控制新建的中转方式

3.2配置邮件SMTP服务

需要将邮箱的第三方服务开启:smtp服务

3.3SMTP邮件发送

1)、导入包

import smtplib

from email.mime.text import MIMEText

from email.header import Header

smtplib:创建SMTP对象

MIMEText:创建邮箱对象

Header:格式化发件人、收件人、标题等信息

2)、配置邮箱

mail_host = “smtp.qq.com”#设置服务器

mail_user =” ****@qq.com”#用户名

mail_pass = “******”#口令【客户端授权码】

sender = mail_user #发送邮箱

receivers = [‘*****@qq.com’]#接收邮箱列表

3)、封装邮箱信息

message = MIMEText(‘邮箱内容’,’plain’,’utf-8’)#  文本文件

message[‘From’] = Header(“发件人”,”utf-8”)

message[‘To] = Header(“收件人”,”utf-8”)

message[‘Subject] = Header(“标题”,”utf-8”)

4)、发送邮件

try:

    smtpObj = smtplib.SMTP()

    smtpObj.connect(mail_host,25)

    smtpObj.login(mail_user,mail_pass)

    smtpObj.sendmail(sender,receivers,message.as_string())

    print('发送成功! ')

except smtplib.SMTPException:

    print('发送失败! ')

3.3.1纯文本邮件的发送

3.3.2带HTML邮件的发送

# 第三方 SMTP服务

mail_host = 'smtp.qq.com' #设置服务器

mail_user = '473736808@qq.com' #用户名

mail_pass = 'fmacuyytyakmbhbg' #口令

sender = mail_user

receivers = ['zhuanglicheng8@163.com']

mail_msg = """

<h1 style="color:green">Python 邮件发送测试。。。</h1>

<p>黑龙江工商学院</p>

<img src="授权码1.JPG">

"""

message = MIMEText(mail_msg, 'html' , 'utf-8')

message['From'] = "{}".format(sender)

message['To'] = ",".join(receivers)

message['Subject'] = Header('测试用的','utf-8')

try:

    smtpObj = smtplib.SMTP()

    smtpObj.connect(mail_host,25)

    smtpObj.login(mail_user,mail_pass)

    smtpObj.sendmail(sender,receivers,message.as_string())

    print('发送成功')

except smtplib.SMTPException:

    print('发送失败')

3.3.3带 附件邮件的发送

# 第三方 SMTP服务

mail_host = 'smtp.qq.com' #设置服务器

mail_user = '473736808@qq.com' #用户名

mail_pass = 'hvxoghznzrgjcaac' #口令

sender = mail_user

receivers = ['zhuanglicheng8@163.com']

# 创建一个带有附件的实例

message = MIMEMultipart()

message['From'] = Header('有了你……','utf-8')

message['To'] = Header('<473736808@qq.com>','utf-8')

message['Subject'] = Header('测试用的','utf-8')

message.attach(MIMEText('测试是发送到发', 'plain' , 'utf-8'))

att1 = MIMEText(open('tesss.txt','rb').read(),'base64','utf-8')

att1["Content-Type"] = 'application/octet-stream'

att1['Content-Disposition'] = 'attachment: filename="tesss.txt"'

message.attach(att1)

try:

    smtpObj = smtplib.SMTP()

    smtpObj.connect(mail_host,25)

    smtpObj.login(mail_user,mail_pass)

    smtpObj.sendmail(sender,receivers,message.as_string())

    print('发送成功')

except smtplib.SMTPException:

    print('发送失败')


最新回复(0)