这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战
前言
写在开头,还有两个月就要年末了,也准备静下心来写点东西,也算是对自己的积累吧
python 邮件发送的方法
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.image import MIMEImage
from email.utils import formataddr
import datetime
my_sender = 'xxxxx@qq.com' # 发件人邮箱账号
my_pass = 'xxxxxxxxx' # 发件人邮箱密码
my_user = ['xxx@qq.com'] # 收件人邮箱账号
mail_msg = """
"""
def send_email(filename, my_sender, my_pass, mail_msg):
msg = MIMEMultipart()
msg['From'] = formataddr([filename, my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['Subject'] = "" # 邮件的主题,也可以说是标题
msg.attach(MIMEText(mail_msg, 'html', 'utf-8'))
server = smtplib.SMTP_SSL("smtp.exmail.qq.com", 465) # 发件人邮箱中的SMTP服务器,端口是25 这里我用的腾讯邮箱
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender, my_user, msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
print("邮件发送成功")
return
邮件分类
- 第一类,邮件内容布局在整个邮箱的某个div中,如gmail、hotmai、sohu等。
- 第二类,邮件内容布局在独立的iframe中,如163、sina等。
我们这里用的第一类方法
Html编写规则
- 不写style标签,仅用内联样式,不要使用主流的css3样式,因为不同邮件的兼容性很差
- 少用图片,邮件需获得许可才可以打开图片,没有载入会很丑
- 内联样式里的float、position属性会被过滤,outlook 不支持padding与margin,使用table布局替代
- 图片可以使用 <td background=“back.png"> 或使用 <img src=“back.png"/>
- div模式不支持flash
了解到以上规则真心不太容易去写html页面,本人是一个后端开发者,也不太擅长去写前端页面,因此只能求助万能的百度了
功夫不负有心人终于找到了一个发送 html到 邮箱的模板网站:www.benchmarkemail.com/resources/f… 可以自由下载,然后修改里面响应的内容,将内容拼接完成放入上述代码中的 mail_msg 参数中,之后发送邮件测试,你就可以得到自己想要的内容展示形式了,更多内容还需要各位自己去探索