好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

用python来发送邮件(简化版)

本片基于python语言,第一次编写博客请见谅,个别引用汇总文中提出,由于python学的不久,有个别代码不一定很好

这代码可以用python发邮件,也可以用来实现自动化,看你们自己的想象和代码能力

import?smtplib???#引用邮箱模块
from?emil.mine.text?import?MIMETex

上面是引用smtplib模块

def?sqm():#这里是防止不懂授权码的人可以通过下面的网站查看
????print("QQ邮箱的授权码:https://service.mail.qq测试数据/cgi-bin/help?subtype=1&&no=1001256&&id=28,\n网易邮箱的授权码:https://help.mail.163测试数据/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac2cda80145a1742516")
def?help():
????input("如果不知道什么授权码可以输入’1‘打开帮助,如果想更换服务器,请输入’2‘")

通过def 来简化代码

emil?=?True?#循环程序
while?emil:#通过while加if实现双邮箱转换
????????print("这是网易邮箱请注意,’hp‘帮助")
????????start?=?input("输入‘1’打开网易邮箱,提示下面要授权码,如果不知道授权码请输入‘sqm’,要帮助请输入‘hp’,更换qq邮箱请输入‘2’")
????????if?start?==?'1':
????????????zh?=?input?("登入你的账号")
????????????mm?=?input?("输入你的授权码或密码")??
????????????fg?=?input?("发给谁")
????????????_user?=?zh??
????????????_pwd?=?mm??
????????????_to?=?fg??
????????????_host?=?'smtp.163测试数据'
????????????_port?=?25

????????????zt?=?input?("请输入想发的主题:")
????????????zw?=?input?("请输入想发的正文")
????????????msg?=?MIMEText?(zt)??
????????????msg["Subject"]?=?zw??
????????????msg["From"]?=?_user??
????????????msg["to"]?=?_to??
????????????try:
????????????????sm?=?smtplib.SMTP
????????????????s?=?smtplib.SMTP?(_host,?_port)??
????????????????s.login(_user,?_pwd)??
????????????????s.sendmail?(_user,?_to,?msg.as_string?())??
????????????????print?("发送成功")
????????????except?smtplib.SMTPException?as?e:??#如果有错误可以通过这里查找出来
????????????????print?(f"这里有错误:{e}")

这段代码通过简单的while和if循环来执行,编者能力有限在中间加个for想让它循环发送发现不行,心累

if?start?==?"sqm":#授权码
????sqm()
????continue

如果输入sqm就会弹出,del就是简化代码用的,用想法的可以在上面hp那加上自己的想法

if?start?==?'2':#更换为qq邮箱
???print("您已经更换到qq邮箱请注意")
???fwq2?=?"smtp.qq测试数据"
???dk2?=?465
???zh2?=?input("请输入您的qq邮箱账号")
???sqm2?=?input("请输入您的qq授权码")
???user2?=?zh2
???pwd2?=?sqm2
???fs?=?input("发给谁?")
???to2?=?fs
???zw2?=input("请输入正文")
???bt2?=?input("请输入标题")
???massg?=?MIMEText(zw2)
???massg["bt2"]?=?bt2
???massg["from2"]?=?zh2
???massg["to2"]?=?to2
???try:
????????sm2?=?smtplib.SMTP
????????s?=?smtplib.SMTP_SSL(fwq2,dk2)
????????s.login(user2,pwd2)
????????s.sendmail(user2,to2,massg.as_string())
????????print("发送成功")
???except?smtplib.SMTPException?as?e:
???????print(f"这里有错:{e}")

这个代码和上面的那个差不多,对了网易的邮箱端口是’25‘,而25是不用加ssl的,qq的要加,这里要注意,有想法的小伙伴可以通过导入time等模块来实现自动化

查看更多关于用python来发送邮件(简化版)的详细内容...

  阅读:34次