运维开发网
广告位招商联系QQ:123077622
 
广告位招商联系QQ:123077622

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

运维开发网 https://www.qedev.com 2021-04-15 10:14 出处:51CTO 作者:mb60744105990cc
本片基于python语言,第一次编写博客请见谅,个别引用汇总文中提出,由于python学的不久,有个别代码不一定很好,待优化,

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

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

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

上面是引用smtplib模块

def sqm():#这里是防止不懂授权码的人可以通过下面的网站查看
    print("QQ邮箱的授权码:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28,\n网易邮箱的授权码:https://help.mail.163.com/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.com'
            _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.com"
   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等模块来实现自动化

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消