Python—実操項目:SMTPは複数人にメールを送る(添付ファイルと添付ファイルを持たない)


Python—実操項目:SMTPは複数人にメールを送る(添付ファイルと添付ファイルを持たない)
  • SMTPメールの簡単なパラメータ紹介
  • Python-本文のみのメール
  • を複数の人に送信
  • Python-複数の人に添付ファイルを挿入するメール
  • を送信
    SMTPメールの簡単なパラメータ紹介
    SMTP(Simple Mail Transfer Protocol):簡単なメール転送プロトコル、pythonのsmtplibは、Eメールを送信するのに便利な方法を提供します.smtpプロトコルを簡単にパッケージ化しています.
    Pythonが作成するSMTPオブジェクト構文は、import smtplib smtpObj=smtplib.SMTP( [host [, port [, local_hostname]]] )
    パラメータ説明:host:SMTPサーバホスト.ホストのipアドレスやドメイン名、例えばrunoobを指定できます.com、これはオプションパラメータです.port:hostパラメータを指定した場合は、SMTPサービスで使用されるポート番号を指定する必要があります.一般的には、SMTPポート番号は25です.local_hostname:SMTPが本体にある場合は、サーバアドレスをlocalhostと指定するだけです.
    Python SMTPオブジェクトはsendmailメソッドを使用してメールを送信し、構文は以下の通りである:SMTP.sendmail(from_addr, to_addrs, msg[, mail_options, rcpt_options])
    パラメータの説明:from_addr:メール送信者アドレス.to_addrs:文字列リスト、メール送信アドレス.msg:メッセージを送信します.そのフォーマットは文字列で、一般的にはメールの本文を指します.
    では、次は直接実操プロジェクトをお見せします.もしあなたが私と同じ初心者なら、コードを叩いてみましょう.
    Python-複数の人に本文だけのメールを送る
    import smtplib                #smtplib                 
    from email.mime.text import MIMEText               # email         
    from email.header import Header              # Header        
    
    #      :    ,QQ     (            )
    from_addr = '75******@qq.com'
    password = input('        ')
    
    #     (         ,             )
    to_addrs =[ '475******@qq.com','75******@qq.com','15******@163.com']
    
    #     (       SMTP        ,       qq SMTP   )
    smtp_server = 'smtp.qq.com'
    
    #      ,        ,        (plain     ),        
    text = ' ,         '      #       ,          
    msg = MIMEText(text,'plain','utf-8')        #    ,    (plain)、    
    
    #       (      ,   ,  )
    msg['From'] = Header(from_addr)
    msg['TO'] = Header(",".join(to_addrs))
    msg['Subject'] = Header('   ')
    
    #      ,          
    server = smtplib.SMTP_SSL()
    server.connect(smtp_server,465)        #465 qq      ,       587
    #      
    server.login(from_addr,password)
    #    
    server.sendmail(from_addr,to_addrs,msg.as_string())
    #     
    server.quit()
    

    Python-複数の人に添付ファイルを挿入するメールを送信
    import smtplib                           #smtplib           
    from email.mime.text import MIMEText         # email               
    from email.header import Header                #Header        
    from email.mime.multipart import MIMEMultipart        #       (                MIMEMultipart  )
    
    #      :    ,QQ     
    from_addr = '75******@qq.com'
    password = input('     ')
    
    #     (         ,             )
    to_addrs =[ '47*******@qq.com','75*******@qq.com','15*******@163.com']
    
    #     
    smtp_server = 'smtp.qq.com'
    
    #             
    message=MIMEMultipart()
    
    #      ,        ,        (plain     ),        
    text = ' ,         '      #       ,          
    mail_inside = MIMEText(text,'plain','utf-8')             #    ,    (plain)、    
    
    #       
    message['From'] = Header(from_addr)
    message['TO'] = Header(",".join(to_addrs))    #       ,     join,         join        
    message['Subject'] = Header('   ')
    message.attach(mail_inside)                   #         
    
    #    csv  1
    attr1=MIMEText(open(r'F:\   \   \Python  \assets.csv','rb').read(),'base64','utf-8')
    attr1["content_Type"]='application/octet-stream'
    attr1["Content-Disposition"] = 'attachment; filename="assets.csv"'  #       ,    
    message.attach(attr1)
    
    #       2
    att2 = MIMEText(open(r'F:\   \   \Python  \timg.jpg','rb').read(), 'base64', 'utf-8')
    att2["Content-Type"] = 'application/octet-stream'
    att2["Content-Disposition"] = 'attachment; filename="timg.jpg"'
    message.attach(att2)
    
    #  html  
    att3 = MIMEText(open(r'F:\   \   \Python  \boke.html', 'rb').read(), 'base64', 'utf-8')
    att3["Content-Type"] = 'application/octet-stream'
    att3["Content-Disposition"] = 'attachment; filename="boke.html"'
    message.attach(att3)
    
    #      
    try:
        #      ,          
        server = smtplib.SMTP_SSL(smtp_server,465)      #465587
        #      
        server.login(from_addr,password)
        #    
        server.sendmail(from_addr,to_addrs,message.as_string())
        #     
        server.quit()
        print('      ')
    except smtplib.SMTPException as e:
        print('error',e) #