yagmailメール支援システム(一)


yagmailメール支援システム(一)
  • プロジェクトの初志
  • 設計理念
  • 本体プログラム
  • プログラム解釈
  • yagmailモジュール分析
  • 後話
  • プロジェクトの初志
    以前は163メールクライアントを利用してメールアドレスをコピーして受信欄に貼り付けてグループで送信していたが、効率が悪く、アプリを設計して自動送信機能を実現できるかどうかを考えていた.
    デザインコンセプト
    手元には学習者の保護者情報excelフォームがあり、中にはメールアドレスとして列があり、プログラムを通じて中のメールアドレスを読み取り、送信待ちのメールリストを生成する.サーバが一度にしきい値を送信するため、メール数制御を行い、開始数m m mを入力し、終了数n(n>m)n(n>m)n(n>m)n(n>m)を入力し、n−m n−m−m−m−m−m−mのメールアドレスを切り取る.そして,切り取ったメールアドレスを1つずつ送信し,送信プロセスを進捗バーで表示することで,送信エラーのメールアドレスをフィードバックとして印刷し,それぞれカウントすることが望ましい.
    マスタプログラム
    import pandas as pd #        
    import time #      
    from tqdm import tqdm #   
    data=pd.read_excel("test.xlsx",index_col=u'  ') #    
    email=data[u'  '] #    
    m=input("           :")
    n=input("           :")
    recipients=tqdm(email[int(m):int(n)]) #        recipients
    print("start sending……")
    import yagmail  #       
    yag=yagmail.SMTP(user="******",password="******",host='smtp.126.com',encoding='utf-8') #       
    content=[
               "

    "
    ,# html , " , , 。", " , , , , , 。", " , , , “ ” → 。", yagmail.inline("D:/PythonProgram/sendmail/qrcode.jpg"), # " 50 。", "D:/PythonProgram/sendmail/poster1.jpeg", # ] # i=0 # k=0 # s=0 # failure_send=[] # for j in recipients: # i=i+1 # try: yag.send(to=j, # contents=content, # subject=" !", # headers={"From": " "}, # ) k=k+1 # time.sleep(0.5) # 0.5 , except: print("
    %s is not valid"
    %j) # failure_send.append(j) # s=s+1 # yagmail.SMTP.close(yag) # print("finished!") #1388 print("totally send: %s " %i) # print("send sucessfully: %s " %k) # print("send failure: %s " %s) #

    プログラム解釈
    プログラムの大まかな過程はExcelの中のメールアドレスを読み取って1つのrecipientsの送信待ちリストを形成して、それからrecipientsに対して循環を行って、yagmailを利用して1つ1つ送信して、しかも送信したメールにラベルを打って、送信に成功してあるいは送信に失敗して、収集して送信に失敗したメールアドレスはfailureがありますsendリストの中にあります.
    yagmailモジュール分析
    まず、yagmailは比較的簡単で、全体の構想ははっきりしていて、最も知能的なのはcontentsリストの中の内容のタイプを判断することができて、先にローカルファイルかどうかを判断して、もしローカルファイルならば、添付ファイルの中で送信して、相対的な経路で、絶対的な経路を記入することができて、次にhtml言語であるかどうかを判断して、はい、本文の中でブラウザにレンダリングすることができます.いずれもそうでない場合は、普通のテキストとしてメールの本文に置きます.
    について述べる
    大量の添付ファイルを追加しないほうがいいです.送信プロセスを遅らせたり、n−m n−m n−mを十分に大きくしたりしないほうがいいです.163でも126でもqqなどの第三者メールサーバにもトラフィック制限とspam措置があります.次は実行可能なWindowsプログラムにパッケージして友达に共有することに注意してください.