2016-12-16 7 views
0

要件:特定の人の誕生日に関する情報を保存し、各誕生日にすべてにメールを送信する必要があります。特定の日にpythonを使用してメールを送信する

私は次のことを行っている:

は、すべての人々にhtmlファイルを送信するためにPythonスクリプトを書きました。それは次のように読み取ります

import smtplib 

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

me = "[email protected]" 
you = "[email protected]" 

msg = MIMEMultipart('alternative') 
msg['Subject'] = "Link" 
msg['From'] = me 
msg['To'] = you 

html = """\ 
<html> 
<body> 

<b>HAPPY BIRTHDAY SHERLYN<br></b> 

</body> 
</html> 
""" 

part = MIMEText(html, 'html') 

msg.attach(part) 

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

mail.ehlo() 

mail.starttls() 

mail.login('username', 'password') 
mail.sendmail(me, you, msg.as_string()) 
mail.quit() 

はまた、特定の日に誕生日の男の子の名前を印刷するには、次のスクリプトを書きました:

import email 
import datetime 
now = datetime.datetime.now() 
a = now.strftime("%d-%B") 

birthdays = { 
      '09-December': ['BOB'], 
      '10-December': ['JOHN'], 
      '16-December': ['SHERLYN'], 

      } 

today_birthdays = birthdays.get(a) 

if today_birthdays: 
    for person in today_birthdays: 
     print "Happy Birthday %s!" % person 
else: 
    print "No Birthday today"  

2番目のスクリプトの最初の文:インポートemailは、電子メールコードを含むpythonファイルの名前です。だから、私は上記のスクリプトを実行するたびに、電子メールは毎日[誕生日を考慮せずに]送信されている、私はそれに電子メールpythonファイルをインポートした。

1.)私は誕生日にのみメールを送信し、他の日には送信しません。

2.)私のHTMLコードでは、誕生日に応じて名前を変更します。 例:Sherlynの誕生日に、Happy Birthday Sherlynを送信する必要があります

3.)最初のコードでは、Gmailアカウントからメールを送信しようとしています。 だから、私が使用:

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

しかし、私は会社のメールからそれを送信する必要がある場合は?

答えて

0

また、それぞれの人の別のメールアドレスに送信する必要があります。重複する名前がないと仮定して、別の辞書name: addressでそれを行うことができます。

1.)email.pyでは、そのコードをすべて関数に移動して、関数を呼び出すときにのみ電子メールを送信するようにしてください。現時点では、すべてのコードはそのモジュール内のグローバルスコープにありますので、電子メールを送信するときではなく、import時に実行されます。あなたはまた、関数は、引数として名前とメールアドレスを取ることを検討可能性があります

def send_email(name, address): 
    # Skipped the rest of the contents, as they're the same... 
    # just the sending line: 
    mail.sendmail(me, address, msg.as_string()) 

次に2番目のスクリプトから、あなたがルックアップするために必要なものが呼び出される)email.send_email(person, address)

2.を呼ぶだろう文字列の書式設定、および方法が含まれています。この1のために、あなたが行うことができます:

​​

をその後でそれを埋めるために:

html.format(name="Sherlyn") 
html.format(name="Bob") 

3)あなたの会社の電子メールの設定方法に依存します、あなたはあなたのサービスデスクに依頼する必要がある場合がありますsmtpの詳細についてはヘルプデスクにお問い合わせください。

+0

私はあなたが私に尋ねたことをしました。私はこの方法でメールを受け取ります:** HAPPY BIRTHDAY {name} ** – prudhvi

+0

あなたはformat()メソッドを呼び出していますか? 'part = MIMEText(html。フォーマット(名前=名前)、 'html') 'またはそれに類するもの? –

関連する問題