0


0

構成ファイルから複数の人にメールを送信する

複数の人にメールを送信し、設定ファイルからアドレスを取得するプログラムを書いています。 問題は、実行するたびに最初のアドレスのみを取得し、そのアドレスに送信することです。 ちなみに、これはpythonでconfigparser modualを使用しています。

私のコードをヘレス:

reporter_email = '%s' %config.get("email", "reporter_email")
notification_emails = ['%s' %(config.get("email", "notification_emails"))]
to = '%s' %config.get("email", "to")
subject = '%s' %config.get("email", "subject")
body = ('''%s\n
%s
%s''' %(config.get("email", "intro_body"), str(fileNames), config.get("email", "con_body")))

to = "To: %s\n" %(to)
subject = "Subject: %s\n\n" %(subject)

smtpObj = smtplib.SMTP('%s' %config.get("email", "portal"), 25)
smtpObj.sendmail(reporter_email, notification_emails, to + subject + body)
smtpObj.quit()

3 Answer


1


問題はここにあります:

notification_emails = ['%s' %(config.get("email", "notification_emails"))]

これは宛先メールのリストを作成しますが、この行を実行した後、 `notification_emails`には単一のアイテムが含まれます。 このリストに複数のアイテムを挿入するには、何らかのループ(またはリストの内包表記)を使用する必要があります。

構成ファイルの内容は何ですか? 「notification_emails」エントリから複数の値を抽出するにはどうすればよいですか?

(スクリプトの実行中にinterrestの変数の内容を出力すると、それらが何を含むのかを確認でき、デバッグの際の開始点として適しています)


0


アドレスを取得してリストまたは辞書に入れ、その後「for loop」を使用してメールを送信します

他の方法:bccを使用


0


forループなしのリストを使用しました。

[Mail Recipients]
p1 = [email protected]
p2 = [email protected]
# users defined in config file

p1 = config.get('Mail Recipients', 'p1')
p2 = config.get('Mail Recipients', 'p2')
# pulling users into my script

sendTo = [p1,p2]

これで、smtp関数/メソッドを使用して、sendmailコードの「to:」部分に「sendTo」変数をプラグインできるようになり、機能するはずです。