码迷,mamicode.com
首页 > 其他好文 > 详细

Socket编程:邮件客户

时间:2020-04-08 19:06:00      阅读:50      评论:0      收藏:0      [点我收藏+]

标签:服务器   默认   def   另一个   email   receive   交互   密码   发送邮件   

Socket编程:邮件客户

实验描述

使用STMP协议从一个邮箱向另一个邮箱发送邮件

SMTP.py

#作业3:邮件客户
from smtplib import SMTP
from email.mime.text import MIMEText
from email.header import Header

mail_server = ‘smtp.qq.com‘
#根据发送方邮箱确定邮箱服务器
#qq邮箱的服务器为smtp.qq.com;163邮箱为smtp.163.com
def get_mail_server(sender):
	key = sender[sender.index(‘@‘)+1:]
	return "smtp."+key

port = ‘25‘  ## SMTP协议默认端口是25
sender = ‘QQNUMBER@qq.com‘
mail_server = get_mail_server(sender)
sender_pass = ‘YOUR POSTBOX AUTHORIZATION CODE‘    #注意是授权码,而不是登录密码,需要在邮箱端先获取
receiver = ‘YOUR POSTBOX NAME@163.com‘
mail_msg = ‘淡黄的长裙,蓬松的头发‘

#第一个参数就是邮件正文,
# 第二个参数是MIME的subtype,传入‘plain‘表示纯文本,最终的MIME就是‘text/plain‘,
# 最后一定要用utf-8编码保证多语言兼容性。
msg = MIMEText(mail_msg, ‘plain‘, ‘utf-8‘)
msg[‘From‘] = sender
msg[‘To‘] = receiver
#Header对象编码文本,包含utf-8编码信息和Base64编码。
msg[‘Subject‘] = Header(‘来自Weber的个人计算机‘, ‘utf-8‘)
try:
	server = SMTP(mail_server, port)
	#用set_debuglevel(1),可以打印出和SMTP服务器交互的所有信息
	#server.set_debuglevel(1)
	server.login(sender, sender_pass)
	#由于可以一次发给多个人,所以传入一个list,邮件正文是一个str,as_string()把MIMEText对象变成str
	server.sendmail(sender, (receiver), msg.as_string() )
	server.quit()
	print("邮件发送成功!")
except:
	server.quit()
	print("邮件发送失败!")

注意将上面代码中的邮箱地址和邮箱授权码改成自己的哦

运行这个代码,打开邮箱即可查看收到的邮件
技术图片

打开浏览器端的接受方邮箱

这里我用QQ邮箱的授权码,发送邮件给我的163邮箱

技术图片

Socket编程:邮件客户

标签:服务器   默认   def   另一个   email   receive   交互   密码   发送邮件   

原文地址:https://www.cnblogs.com/Weber-security/p/12661762.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!