プログラミング備忘録

初級プログラマ。python、DL勉強中

pythonでGmailをyahooメールに送信してみる

pythonGmailをyahooメール送信してみる。
ライブラリが充実しているため、簡単に実行できた。

ソース

import yaml
import smtplib
from email.mime.text import MIMEText
from email.utils import formatdate

class messenger():
    
    def __init__(self,FROM_ADDRESS,FROM_PASSWORD):
        self.FROM_ADDRESS=FROM_ADDRESS
        self.FROM_PASSWORD=FROM_PASSWORD

    def run(self,TO_ADDRESS,BCC,SUBJECT,BODY):
        msg = MIMEText(BODY)
        msg['From'] = self.FROM_ADDRESS
        msg['To'] = TO_ADDRESS
        msg['Bcc'] = BCC
        msg['Subject'] = SUBJECT
        msg['Date'] = formatdate()

        smtpobj = smtplib.SMTP('smtp.gmail.com', 587)
        smtpobj.ehlo()
        smtpobj.starttls()
        smtpobj.ehlo()
        smtpobj.login(self.FROM_ADDRESS, self.FROM_PASSWORD)
        smtpobj.sendmail(self.FROM_ADDRESS,TO_ADDRESS,msg.as_string())
        smtpobj.close()

        return msg



if __name__ =="__main__":
    f=open("key.yaml")
    yf=yaml.load(f)
    f.close()
    frominfo=yf["MAIL"]
    FROM_ADDRESS = frominfo["ADD"]
    FROM_PASSWORD = frominfo["PASS"]

    mailmgr=messenger(FROM_ADDRESS,FROM_PASSWORD)
    
    TO_ADDRESS = 'hoge@yahoo.co.jp'
    BCC = 'fuga@yahoo.co.jp'
    SUBJECT = 'GmailのSMTPサーバ経由'
    BODY = 'pythonでメール送信\nrubyではない'

    mailmgr.run(TO_ADDRESS,BCC,SUBJECT,BODY)

事前にkey.yamlGmailの情報を記載
宛先にはyahooメールを指定する