Socket编程:邮件客户

Posted weber-security

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Socket编程:邮件客户相关的知识,希望对你有一定的参考价值。

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编程:邮件客户的主要内容,如果未能解决你的问题,请参考以下文章

socket网络编程:加上连接循环(代码完善)

廖雪峰Java13网络编程-1Socket编程-5UDP编程

C语言 UDP socket 简单客户端 编程,急

Linux----网络编程socket

socket网络编程:客户端与服务端代码bug修复(代码完善)

Python socket编程客户端与服务端通信