2017-12-08 7 views
0

私は自分自身にメールを送りたい。静的テキストではなく、さまざまなテキストにコンテンツを変更するにはどうすればよいですか?Python 3.6.2で自動化されたメール(smtplib)に変更するコンテンツを追加するにはどうすればよいですか?

import smtplib 
import random 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 

#food dictionary 

food = random.choice([spaghetti, pizza]) 

def mail(): 

    email_user = 'me' 
    email_send = ['no1','no2'] 

    msg = MIMEMultipart() 
    msg['From'] = email_user 
    msg['To'] = ','.join(email_send) 
    msg['Subject'] = 'food for the week!' 

    body = 'why can't I get my new content in here?!' 

これは私が困っていると思っている部分(body=...)です。どうすればrandom.choice()の部分に「食べ物」を入れてもエラーメッセージが表示されませんか?それとももっと良い方法がありますか?

msg.attach(MIMEText(body,'plain')) 
text = msg.as_string() 
mail =smtplib.SMTP("smtp.gmail.com", 587) 
mail.ehlo() 
mail.starttls() 
mail.login(email_user,"pwd") 
mail.sendmail(email_user,email_send, text) 
mail.close() 
mail() 

答えて

0

使用する値を関数に渡すことによって。また、関数定義を使用する前に定義する必要があります。

import smtplib 
import random 
from email.mime.multipart import MIMEMultipart 
from email.mime.text import MIMEText 


def mail(food): 

    email_user = 'me' 
    email_send = ['no1','no2'] 

    msg = MIMEMultipart() 
    msg['From'] = email_user 
    msg['To'] = ','.join(email_send) 
    msg['Subject'] = 'food for the week!' 

    body = food 
    msg.attach(MIMEText(body,'plain')) 

    text = msg.as_string() 

    mail =smtplib.SMTP("smtp.gmail.com", 587) 

    mail.ehlo() 

    mail.starttls() 

    mail.login(email_user,"pwd") 

    mail.sendmail(email_user,email_send, text) 

    mail.close() 

    mail() 
#food dictionary 

food = random.choice([spaghetti, pizza]) 
mail(food) 
+0

ありがとうございました!しかし、Pythonはまだ次のように文句を言う:AttributeError: 'dict'オブジェクトには属性 'エンコード'がありません – Kiwipo17

+0

スタックトレースを投稿してもいいですか? –

+0

トレースバック(最新のコール最後): ファイル "/ Users/me/Documents/ メール ファイル "/Users/me/Documents/rezepte.py"、行21、メール内 msg.attach(MIMEText(本文、 'plain')) ファイル "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/email/mime/text.py"、34行目、__init__ _text.encode( 'us-ascii') AttributeError: ' dict 'オブジェクトに'エンコード '属性がありません – Kiwipo17

関連する問題