zoukankan      html  css  js  c++  java
  • Python撰写mail

    版本1   指定邮箱进行发送

    """
    说明:指定账户密码进行邮件发送
    由312051952@qq.com-->c4kaichen@163.com
    """
    
    
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    #登录邮箱步骤
    smtpConnect=smtplib.SMTP('smtp.qq.com',587)
    smtpConnect.ehlo()
    smtpConnect.starttls()
    smtpConnect.login('312051952@qq.com','邮箱密码')
    sender='312051952@qq.com'
    #receiver=[input('输入邮箱地址:')]
    receiver=['c4kaichen@163.com']  #显示收件人
    message=MIMEText('python邮件发送测试3','plain','utf-8')#邮箱内容
    message['To'] =  Header('c4kaichen@163.com')
    subject='python smtp测试3' #邮箱主题
    message['Subject']=Header(subject,'utf-8')
    smtpConnect.sendmail(sender,receiver,message.as_string())
    smtpConnect.quit()

    版本2 手动输入对方邮箱进行登录

    #发送邮件并手动输入对方邮箱
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    #登录邮箱步骤
    smtpConnect=smtplib.SMTP('smtp.qq.com',587)
    smtpConnect.ehlo()
    smtpConnect.starttls()
    smtpConnect.login('312051952@qq.com','邮箱密码')
    sender='312051952@qq.com'
    receiver=input('输入邮箱地址:')
    receiverdone=[receiver]   #要用列表显示
    #receiver=['c4kaichen@163.com']  #显示收件人
    message=MIMEText('python邮件发送测试5','plain','utf-8')#邮箱内容
    message['To'] =  Header(receiver)
    subject='python smtp测试4' #邮箱主题
    message['Subject']=Header(subject,'utf-8')
    smtpConnect.sendmail(sender,receiverdone,message.as_string())
    smtpConnect.quit()

    最新版本:

     分别输入要登录的QQ邮箱密码账号

    以及需要发送的对方账号以及邮件内容

    #发送邮件并手动输入对方邮箱
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    #登录邮箱步骤
    smtpConnect=smtplib.SMTP('smtp.qq.com',587)
    smtpConnect.ehlo()
    smtpConnect.starttls()
    user=input('请输入QQ邮箱地址:')
    passwd=input('请输入QQ邮箱密码:')
    smtpConnect.login(user,passwd)
    sender=user
    receiver=input('输入对方邮箱地址:')
    content=input('请输入要发送的内容:')
    receiverdone=[receiver]   #要用列表显示
    #receiver=['c4kaichen@163.com']  #显示收件人
    message=MIMEText(content,'plain','utf-8')#邮箱内容
    message['To'] =  Header(receiver)
    subject='python smtp测试4' #邮箱主题
    message['Subject']=Header(subject,'utf-8')
    smtpConnect.sendmail(sender,receiverdone,message.as_string())
    smtpConnect.quit()

    手动输入邮箱及密码之后手动输入对方的邮箱,邮件主题,内容进行邮件的发送工作

    # 发送邮件并手动输入对方邮箱
    # 注意此处是针对QQ邮箱进行撰写
    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    
    # 登录邮箱步骤
    smtpConnect = smtplib.SMTP('smtp.qq.com', 587)
    smtpConnect.ehlo()
    smtpConnect.starttls()
    user = input('请输入QQ邮箱地址:')
    passwd = input('请输入QQ邮箱密码:')
    smtpConnect.login(user, passwd)
    sender = user
    receiver = input('输入对方邮箱地址:')
    subject = input('请输入邮件主题:')
    content = input('请输入要发送的内容:')
    receiverdone = [receiver]  # 要用列表显示
    # receiver=['c4kaichen@163.com']  #显示收件人
    message = MIMEText(content, 'plain', 'utf-8')  # 邮箱内容
    message['To'] = Header(receiver)
    message['Subject'] = Header(subject, 'utf-8')
    smtpConnect.sendmail(sender, receiverdone, message.as_string())
    smtpConnect.quit()

    新版本:每天的菜谱进行选择然后自动发送邮件

    import smtplib
    from email.mime.text import MIMEText
    from email.header import Header
    import time
    def current_time():
        time_format='%Y-%d-%m %X'
        time_current=time.strftime(time_format)
        return time_current
    #登录邮箱步骤
    def sendmail(x):
        smtpConnect=smtplib.SMTP('smtp.qq.com',587)
        smtpConnect.ehlo()
        smtpConnect.starttls()
        smtpConnect.login('312051952@qq.com','邮箱密码')
        sender='312051952@qq.com'
        receiver=['c4kaichen@163.com']  #显示收件人
        message=MIMEText(x,'plain','utf-8')#邮箱内容   此处建议采用plain  如果换成text发送过去的会是附件形式
        message['To'] =  Header('c4kaichen@163.com')
        time_current=current_time()
        subject='%s每日菜单'%time_current #邮箱主题:每日菜单
        message['Subject']=Header(subject,'utf-8')
        smtpConnect.sendmail(sender,receiver,message.as_string())
        smtpConnect.quit()
    import random
    list_menu=['排骨冬瓜','清炒包菜',' 蒜泥西蓝花',' 清炒青菜',
                         ' 筒骨汤',' 香干肉丝',' 丝瓜炒蛋',' 面条',' 沙县',' 品客']
    def write_menu(args):
        with open('menu_info','w',encoding='utf-8') as f:
            f.writelines(args)
    def read_menu():
        with open('menu_info','r',encoding='utf-8') as f2:
            data=f2.read()
        return data
    
    num=0
    item_menu=[]
    count=input('请输入今天要吃几个菜:>>').strip()
    if count.isdigit():
        count=int(count)
        while num<count:
            item=random.choice(list_menu)
            item_menu.append(item)
            num+=1
            if num==count:
                print('33[31;1m今日选择的菜单如下:33[0m')
                for p_item in item_menu:
                    print(p_item)
                write_menu(item_menu)
                x=read_menu()
                sendmail(x)
    else:
        print('请重新输入')
    input('press Enter to exit')
    View Code

    #add at 18-11-11

    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText
    # 第三方 SMTP 服务
    mail_host = "smtp.163.com" # SMTP服务器
    mail_user = "c4kaichen"   # 用户名
    mail_pass = "XXXXX"  # 授权密码,非登录密码
    sender = 'c4kaichen@163.com' # 发件人邮箱(最好写全, 不然会失败)
    receivers = '312051952@qq.com' # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
    title = '标题info'#标题
    content = '正文info'  # 正文
    def sendEmail():
        message = MIMEText(content, 'plain', 'utf-8')  # 内容, 格式, 编码
        message['From'] = "{}".format(sender)
        #message['To'] = ",".join(receivers)
        message['To'] = receivers
        message['Subject'] = title
        try:
            smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
            smtpObj.login(mail_user, mail_pass)  # 登录验证
            smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
            print("mail has been send successfully.")
        except smtplib.SMTPException as e:
            print(e)
    
    def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
        email_client = smtplib.SMTP(SMTP_host)
        email_client.login(from_account, from_passwd)
        # create msg
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = Header(subject, 'utf-8')  # subject
        msg['From'] = from_account
        msg['To'] = to_account
        email_client.sendmail(from_account, to_account, msg.as_string())
        email_client.quit()
    if __name__ == '__main__':
        sendEmail()
        # receiver = '***'
        # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)

     ### add at 18-11-11    通过163邮箱每日IP推送

    import socket
    
    
    # 获取本机计算机名称
    hostname = socket.gethostname()
    #print(hostname)
    # 获取本机ip列表
    #ip = socket.gethostbyname_ex(hostname)
    ip = socket.gethostbyname_ex(hostname)
    addr=ip[2]
    
    
    #获取当前时间
    import time
    current_time=time.ctime()
    
    #获取计算机名
    pc_name=socket.gethostname()
    ip_info=current_time+' '+pc_name+' '+str(addr)
    
    
    
    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText
    # 第三方 SMTP 服务
    mail_host = "smtp.163.com" # SMTP服务器
    mail_user = "c4kaichen"   # 用户名
    mail_pass = "XXXXX"  # 授权密码,非登录密码
    sender = 'c4kaichen@163.com' # 发件人邮箱(最好写全, 不然会失败)
    receivers = '312051952@qq.com' # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
    title = '每日ip'  # 标题
    content = ip_info#正文
    def sendEmail():
        message = MIMEText(content, 'plain', 'utf-8')  # 内容, 格式, 编码
        message['From'] = "{}".format(sender)
        #message['To'] = ",".join(receivers)
        message['To'] = receivers
        message['Subject'] = title
        try:
            smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
            smtpObj.login(mail_user, mail_pass)  # 登录验证
            smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
            print("mail has been send successfully.")
        except smtplib.SMTPException as e:
            print(e)
    
    def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
        email_client = smtplib.SMTP(SMTP_host)
        email_client.login(from_account, from_passwd)
        # create msg
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = Header(subject, 'utf-8')  # subject
        msg['From'] = from_account
        msg['To'] = to_account
        email_client.sendmail(from_account, to_account, msg.as_string())
        email_client.quit()
    if __name__ == '__main__':
        sendEmail()
        # receiver = '***'
        # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)
    View Code

    升级版  邮件轰炸

    import socket
    from threading import Timer
    
    # 获取本机计算机名称
    hostname = socket.gethostname()
    #print(hostname)
    # 获取本机ip列表
    #ip = socket.gethostbyname_ex(hostname)
    ip = socket.gethostbyname_ex(hostname)
    addr=ip[2]
    
    
    #获取当前时间
    import time
    current_time=time.ctime()
    
    #获取计算机名
    pc_name=socket.gethostname()
    ip_info=current_time+' '+pc_name+' '+str(addr)
    
    
    
    import smtplib
    from email.header import Header
    from email.mime.text import MIMEText
    # 第三方 SMTP 服务
    mail_host = "smtp.163.com" # SMTP服务器
    mail_user = "c4kaichen"   # 用户名
    mail_pass = "XXXXX"  # 授权密码,非登录密码
    sender = 'c4kaichen@163.com' # 发件人邮箱(最好写全, 不然会失败)
    receivers = '312051952@qq.com' # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
    title = '每日ip'  # 标题
    content = ip_info#正文
    def sendEmail():
        message = MIMEText(content, 'plain', 'utf-8')  # 内容, 格式, 编码
        message['From'] = "{}".format(sender)
        #message['To'] = ",".join(receivers)
        message['To'] = receivers
        message['Subject'] = title
        try:
            smtpObj = smtplib.SMTP_SSL(mail_host, 465)  # 启用SSL发信, 端口一般是465
            smtpObj.login(mail_user, mail_pass)  # 登录验证
            smtpObj.sendmail(sender, receivers, message.as_string())  # 发送
            t=Timer(10,sendEmail)
            t.start()
            print("mail has been send successfully.")
        except smtplib.SMTPException as e:
            print(e)
    
    def send_email2(SMTP_host, from_account, from_passwd, to_account, subject, content):
        email_client = smtplib.SMTP(SMTP_host)
        email_client.login(from_account, from_passwd)
        # create msg
        msg = MIMEText(content, 'plain', 'utf-8')
        msg['Subject'] = Header(subject, 'utf-8')  # subject
        msg['From'] = from_account
        msg['To'] = to_account
        email_client.sendmail(from_account, to_account, msg.as_string())
        email_client.quit()
    if __name__ == '__main__':
        sendEmail()
        # receiver = '***'
        # send_email2(mail_host, mail_user, mail_pass, receiver, title, content)
  • 相关阅读:
    1007 正整数分组
    Review: JQuery
    Summary: DOM modification techniques
    B
    D
    C
    hdu5592 倒序求排列+权值线段树
    主席树入门——询问区间第k大pos2104,询问区间<=k的元素个数hdu4417
    二维前缀和好题hdu6514
    莫比乌斯反演理解
  • 原文地址:https://www.cnblogs.com/nodchen/p/8458140.html
Copyright © 2011-2022 走看看