【Python】简单电子邮件发送功能实现
【摘要】
电子邮件传输机制
一般的网络服务程序在传输信息时就像拨打电话,需要双方同时保持在线,而在电子邮件系统中,当用户发送邮件后不必等待投递工作完成即可下线。如果对方邮件服务器(MTA)宕机或对方临时离线,则发件服务器(MTA)就会把要发送的内容自动的暂时保存到本地,等检测到对方邮件服务器恢复后会立即再次投递,期间一般无需运维人员维护处理,随...
电子邮件传输机制
一般的网络服务程序在传输信息时就像拨打电话,需要双方同时保持在线,而在电子邮件系统中,当用户发送邮件后不必等待投递工作完成即可下线。如果对方邮件服务器(MTA)宕机或对方临时离线,则发件服务器(MTA)就会把要发送的内容自动的暂时保存到本地,等检测到对方邮件服务器恢复后会立即再次投递,期间一般无需运维人员维护处理,随后收信人(MUA)就能在自己的信箱中找到这封邮件了。
简单来说,邮件的发送并不是直接将邮件从一个客户端A发送到另一个客户端B,中间要经过邮局服务器(server),这样就不需要保证通信双方同时在线了。
而SMTP是简单邮件传输协议,用于发送和中转发出的电子邮件,占用服务器的25/TCP端口。
代码实现
这里使用python的email模块实现电子邮件发送的功能。
-
from email.header import Header
-
from email.mime.text import MIMEText
-
from email.utils import parseaddr, formataddr
-
-
import smtplib
-
-
def _format_addr(s):
-
name, addr = parseaddr(s)
-
return formataddr((Header(name, 'utf-8').encode(), addr))
-
-
user_mail = '你本人的邮箱地址'
-
password = '你的邮箱密码'
-
send_mail = '收件人的邮箱地址'
-
smtp_server = '你所在邮箱的smtp服务器地址'
-
-
#填写邮件的正文、发件人信息、收件人信息、主题...
-
msg = MIMEText('Gitchat is funny!', 'plain', 'utf-8')
-
msg['From'] = _format_addr('Gitchat <%s>' % user_mail)
-
msg['To'] = _format_addr('管理员 <%s>' % send_mail)
-
msg['Subject'] = Header('Gitchat test', 'utf-8').encode()
-
-
#发出邮件要执行的动作
-
server = smtplib.SMTP(smtp_server, 25) #执行邮局服务器的25端口
-
server.set_debuglevel(1) #
-
server.login(user_mail, password) #登录服务器
-
server.sendmail(user_mail, [send_mail], msg.as_string()) #发送信件到指定的地址
-
server.quit() #结束服务:wq
-
-
展示
客户端软件使用Foxmail验证之前的程序
文章来源: blog.csdn.net,作者:hinzer,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/feit2417/article/details/86261092
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)