2010-11-02 138 views
0

我正在編寫一個程序,該程序通過電子郵件發送多個人,並從配置文件中獲取地址。問題是每次運行它只需要首先尋址並將其發送到該地址。順便說一句,這是在Python中使用configparser模塊。從配置文件向多個人發送電子郵件

繼承人我的代碼:

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() 

回答

0

取地址,並投擲到列表或字典,使用後 個 「for循環」 和發送電子郵件

其他辦法:使用BCC

+0

謝謝,我知道了對運行中的for循環和它的工作的偉大,現在 – nlee 2010-11-02 17:16:50

+0

你的歡迎,BCC至 – Efazati 2010-11-03 07:26:31

1

問題在這裏:

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

這建立了目標電子郵件列表,但在執行此行後,notification_emails包含單個項目。您必須使用某種循環(或列表理解)在此列表中插入多個項目。

你的配置文件的內容是什麼?如何從notification_emails條目中提取多個值?

(打印的interrest變量的腳本的執行過程中的內容可以看到它們包含的東西,是調試時一個很好的起點poitn)

+0

我獲取列表 – nlee 2010-11-02 17:04:02

+0

[郵件] notification_emails的形式,這兩個項目可以使用:EMAIL1 @東西.com,[email protected] 這是返回給我作爲列表 – nlee 2010-11-02 17:06:43

+0

我已經得到它現在在for循環運行。感謝您的時間 – nlee 2010-11-02 17:17:36

0

我用一個列表W/O 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功能/法插上「SENDTO」變量在「到:」 sendmail的的代碼部分,它應該工作。

相關問題