python实现QQ邮件的自动收发

先抛出代码
import poplib
from email.mime.text import MIMEText
import email
_user = "XXXXXXXX@qq.com"
_pwd  = "XXXXXXXXXXXXXXXXXX"
sent=smtplib.SMTP_SSL('smtp.qq.com',465)#设置了SMTP服务器为stmp.qq.com 其端口号为465
sent.login(_user, _pwd)#登陆
try:
    to=['11111111@qq.com','22222222@qq.com']
    content=MIMEText('hhhhhhh,我是小仙女')#MIMEText表示邮件发送具体内容
    content['Subject']='Python邮箱群发测试!hello'
    content['From']='1329193843@qq.com'
    content['To']=','.join(to)
  sent.sendmail('1329193843@qq.com',to,content.as_string())#三个参数
    sent.close()#关闭邮箱
except smtplib.SMTPException.e:
    print ("Falied,%s"%e )

我刚开始接触这个,原因是之前在填写联系方式的时候,觉得要是写QQ邮箱不是很正式,但是自己学校的邮箱又不是经常登录,害怕错过面试或者什么重要信息,所以想能不能两个邮箱做一个关联,QQ邮箱可以代收学校邮箱的邮件,所以就有了这个。

代码网上有很多,这里我来做一下相关的解析

1.首先要了解,要想实现邮件的收发,需要了解相关的类或者库

poplib是用于pop3收取邮件的模块,相对应的stmplib是遵循stmp协议的邮件发送模块

对比来看,POP(Post Office Protocol)邮局通讯协定POP是互联网上的一种通讯协定,主要功能是用在传送电子邮件,当我们寄信给另外一个人时,对方当时多半不会在线上,所以邮件服务器必须为收信者保存这封信,直到收信者来检查这封信件。当收信人收信的时候,必须通过POP通讯协定,才能取得邮件。POP3表示邮局协议的第三个版本,规定了如何将个人计算机连接到、Internet的邮件服务器和下载电子邮件的电子协议。而STMP(Simple Mail Transfer Protocol)简易邮件传输通讯协议,主要功能是当发电子邮件时必须通过SMTP通讯协议,将邮件发送个对方的邮件服务器,这样等到对方上网的时候才能收到所寄出的信。

SUMMARY:POP3用来收取电子邮件,STMP用来发送电子邮件,而其对应的poplib和stmpib则是遵循对应协议的python库,其中包含对邮件的操作可以直接使用。

2.这篇文章中只用到发送,下次我搞明白接收再来补充。发送的话,python中内置对stmp协议支持的库,一个是email,一个是stmplib,其中email用来构建文件,stmplib用于发送邮件,两者缺一不可。

3.邮件支持群发,只要将收信人用.join(to)联系起来即可。

4.需要提醒的还有两个问题

1)邮箱的登录密码不是真正的QQ密码,而是获取的授权码,这是为了第三方登录邮箱安全考虑所设计的。如果授权码错误或者密码错误会出现error   535, 'Error: \xc7\xeb\xca\xb9\xd3\xc3\xca\xda\xc8\xa8\xc2\xeb\xb5\xc7\xc2\xbc\xa1\xa3\xcf\xea\xc7\xe9\xc7\xeb\xbf\xb4: http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256'

参考http://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28,授权码不止一个,所以不用每次都修改

2)在测试的时候随便写了几行文字,顺便损一波别人,想搞个恶作剧,结果被官方认为是垃圾邮件,不让我发,所以,建议各位规矩行事,不要学我

3)发现一个问题,这样发邮件根本没有办法做到匿名发送,即使设定了邮件的发送人为小仙女还是会在显示的时候,写的清清楚楚 代发人:11111111@qq.com这样大家还是知道是我发的。哭唧唧。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现邮件收发功能的代码,需要使用 Python 的 `smtplib` 和 `email` 库。以下是一个简单的例子: ```python import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication # 发件人邮箱账号 sender = 'your_email@example.com' # 发件人邮箱密码 password = 'your_email_password' # 件人邮箱账号 receiver = 'recipient_email@example.com' # 创建邮件对象 msg = MIMEMultipart() # 设置邮件主题、发件人、件人 subject = 'Python Email Test' msg['Subject'] = subject msg['From'] = sender msg['To'] = receiver # 添加邮件正文 body = 'This is a test email sent from Python.' msg.attach(MIMEText(body, 'plain')) # 添加附件 filename = 'test.txt' with open(filename, 'rb') as f: attachment = MIMEApplication(f.read(), _subtype='txt') attachment.add_header('Content-Disposition', 'attachment', filename=filename) msg.attach(attachment) # 发送邮件 try: smtpObj = smtplib.SMTP('smtp.example.com', 25) smtpObj.login(sender, password) smtpObj.sendmail(sender, receiver, msg.as_string()) print('邮件发送成功') except smtplib.SMTPException as e: print('邮件发送失败:', e) finally: smtpObj.quit() ``` 需要将 `your_email@example.com` 和 `your_email_password` 替换为实际的发件人邮箱地址和密码,将 `recipient_email@example.com` 替换为实际的件人邮箱地址,将 `smtp.example.com` 替换为实际的 SMTP 服务器地址。此外,如果需要添加附件,需要将 `test.txt` 替换为实际的附件文件名。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值