Python发送邮件(smtplib库)

目录

发送文本内容

发送html格式的邮件 

发送带附件的邮件 


发送文本内容

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
 
mail_user = '[email protected]'     # 发件人邮箱账号
mail_pass = 'xxx'          # 发件人邮箱密码
received_user = '[email protected]'     # 收件人邮箱账号
try:
    msg=MIMEText('邮件内容','plain','utf-8')
    msg['Subject']="邮件标题"                           # 邮件的主题,也可以说是标题
    msg['From']=formataddr(["发件人名称",mail_user])    # 括号里的对应发件人邮箱昵称、发件人邮箱账号
    msg['To']=formataddr(["收件人名称",received_user])   # 括号里的对应收件人邮箱昵称、收件人邮箱账号
 
    #server=smtplib.SMTP("xx.xx", 25)        #发件人邮箱中的SMTP服务器,默认是25
    server=smtplib.SMTP_SSL("smtp.qq.com", 465)      #发件人邮箱中的SMTP服务器,这里我写的是QQ邮箱的SMTP服务器,默认是25,SSL端口是465
    server.login(mail_user, mail_pass)                 # 括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(mail_user,[received_user],msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送的邮件
    #server.sendmail(mail_user,[received_user,received_user2],msg.as_string())  #多个收件人的话
    server.quit()  # 关闭连接
    print("邮件发送成功")
except Exception as e:
    print("邮件发送失败")
    print("异常的类型是:%s"%type(e))
    print("异常的内容是:%s"%e)

 

发送html格式的邮件 

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
 
mail_user = '[email protected]'     # 发件人邮箱账号
mail_pass = 'xxx'          # 发件人邮箱密码
received_user = '[email protected]'     # 收件人邮箱账号
mail_msg = """
<p>Python 邮件发送测试...</p>
<p><a href="http://www.baidu.com">这是一个链接</a></p>
"""

try:
    msg=MIMEText(mail_msg,'html','utf-8')
    msg['Subject']="邮件标题"                           # 邮件的主题,也可以说是标题
    msg['From']=formataddr(["发件人名称",mail_user])    # 括号里的对应发件人邮箱昵称、发件人邮箱账号
    msg['To']=formataddr(["收件人名称",received_user])         # 括号里的对应收件人邮箱昵称、收件人邮箱账号
 
    server=smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,默认是25,SSL端口是465
    server.login(mail_user, mail_pass)                 # 括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(mail_user,[received_user],msg.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送的邮件
    server.quit()  # 关闭连接
    print("邮件发送成功")
except Exception as e:
    print("邮件发送失败")
    print("异常的类型是:%s"%type(e))
    print("异常的内容是:%s"%e)

发送带附件的邮件 

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication 
from email.utils import formataddr
 
mail_user = '[email protected]'     # 发件人邮箱账号
mail_pass = 'xxx'          # 发件人邮箱密码
received_user = '[email protected]'     # 收件人邮箱账号
try:
    message = MIMEMultipart()
    message['Subject']="邮件标题"                           # 邮件的主题,也可以说是标题
    message['From']=formataddr(["发件人名称",mail_user])    # 括号里的对应发件人邮箱昵称、发件人邮箱账号
    message['To']=formataddr(["收件人名称",received_user])         # 括号里的对应收件人邮箱昵称、收件人邮箱账号

    message.attach(MIMEText("邮件正文内容","plain","utf-8"))

    # 发送方式1,发送当前目录下的test.txt
    filename1="test.txt"
    att1 = MIMEText(open(filename1, 'rb').read(), 'base64', 'utf-8')
    att1["Content-Type"] = 'application/octet-stream'
    att1["Content-Disposition"] = "attachment;filename="+filename1  # 这里的filename可以任意写,写什么名字,邮件中显示什么名字
    message.attach(att1)
     
    # 发送方式2,发送当前目录下的test.jpg
    filename2="test.jpg"
    fileApart = MIMEApplication(open(filename2, 'rb').read())
    fileApart.add_header('Content-Disposition', 'attachment', filename=filename2)
    message.attach(fileApart)

    server=smtplib.SMTP_SSL("smtp.qq.com", 465)  # 发件人邮箱中的SMTP服务器,默认是25,SSL端口是465
    server.login(mail_user, mail_pass)                 # 括号中对应的是发件人邮箱账号、邮箱密码
    server.sendmail(mail_user,[received_user],message.as_string())  # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送的邮件
    server.quit()  # 关闭连接
    print("邮件发送成功")
except Exception as e:
    print("邮件发送失败")
    print("异常的类型是:%s"%type(e))
    print("异常的内容是:%s"%e)

发布了390 篇原创文章 · 获赞 1261 · 访问量 118万+

猜你喜欢

转载自blog.csdn.net/qq_36119192/article/details/104153768