python实现发邮件功能

目录

1. 电子邮件的工作原理

2. SMTP协议

3. 准备

 4. 具体代码实现


1. 电子邮件的工作原理

  • 发件人将邮件发送到自己使用的邮件服务器

  • 发件人的邮件服务器将受到的邮件按其目的地址转发到收件人邮件服务器中的收件人邮箱

  • 收件人在方便的时候访问收件人邮件服务器中自己的邮箱,获取受到的电子邮件

 

2. SMTP协议

  • SMTP协议只能传送ASCII码文本数据,不能传送可执行文件或者其他的二进制对象

  • SMTP不能满足传送多媒体邮件(例如带有图片,音频或视频数据)的需要。并且许多其他非英语国家的文字(例如中文,俄文,甚至带有重音符号的发文或德文)也无法用SMTP传送。

  • 为解决SMTP传输非ASCII码文本的问题,提出来多用途因特网邮件扩展MIME(Multipurpose Internet Mail Extensions)

发送发中如果包含非ASCII码文本数据,先用MIME协议将其转换成ASCII码,然后再使用SMTP协议进行发送

  • 实际上,MIME不仅仅使用与SMTP,也用于后来的同样面向ASCII字符的HTTP。

3. 准备

(1)安装需要的模块

pip install email

pip install smtplib

(2)开通邮箱的smtp协议,获取授权码(qq邮箱为例)

进入邮箱后点击"设置"–>选择"账户"–>下拉找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击开启以后会自动弹出生成授权码.按要求发送短信后,复制授权码,备用.

 

 4. 具体代码实现

import smtplib
from email.mime.text import MIMEText
# 配置第三方服务
mail_host = "smtp.qq.com"  # 设置服务器
mail_user = "xx@qq.com"  # 用户名
mail_pass = ""     # 授权码

receivers = "xx@qq.com" # 接受邮箱


# 构建邮箱内容
# plain  文本类型
message = MIMEText("hello world", 'plain', 'utf-8')

message["From"] = mail_user  
message["To"] = receivers
message["Subject"] = "xxx 邮件测试"

smtpObj = smtplib.SMTP()
smtpObj.connect(mail_host)
smtpObj.login(mail_user, mail_pass)
smtpObj.sendmail(mail_user, receivers, message.as_string())
smtpObj.quit()

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值