2017-06-29 14 views
0

電子メールコンテンツをオンザフライで生成し、Pythonを使用してEC2サーバーからGmailアカウントから電子メールを送信したいと考えています。私はローカルホスト上でそれを行うときには正常に動作しますが、私は私のEC2上で同じコードを実行すると、それは動作しません...ここでPythonを使用してAWS EC2で電子メールを送信

は私のコードです:

from email.mime.multipart import MIMEMultipart 
from email.mime.application import MIMEApplication 
from email.mime.text import MIMEText 
from email.mime.image import MIMEImage 
msg = MIMEMultipart() 

part = MIMEApplication(file("<pathtopdf>").read()) 
part.add_header('Content-Disposition', 'attachment; filename="<nameofpdf.pdf>"') 
msg.attach(part) 

msg['From'] = "<username>@gmail.com" 
msg['To'] = "<username>@gmail.com" 
msg['Subject'] = "Hello PDF" 
import smtplib 
server = smtplib.SMTP('smtp.gmail.com',587) #port 465 or 587 
server.ehlo() 
server.starttls() 
server.ehlo() 
server.login(<login info params>) 
server.close() 

が行うとにかくがありますAmazon SESを使用しないでこれは?私は顧客の要求に応じて電子メールを送るだけで、顧客の入力に基づいて簡単なPDFを生成し、顧客に送信するように指定した電子メールで電子メールを送信する必要があります...これは非常に単純な操作であり、私は突っ込んでいく必要があります。私はあなたがAWS SESを使用することをお勧めします

+1

「うまくいかない」とは、他者に何も意味しません。正確にどこが失敗するのですか? – helloV

+0

Pythonを使用して、AWSの「SNS」サービスに通知を送信できます。このサービスは、必要に応じて受信者に電子メールを送信できます。 – Henry

答えて

0

EDIT

。 GmailはEC2のIPアドレスをブロックするためです。あなたはアウトバウンドルールでポート587を有効にする必要が

Gmail SMTP is not working in ec2 instance

+0

弾性IPの設定方法を教えてください。なぜ私はそれをしなくてはなりませんか? – mnot

+0

@mnot申し訳ありませんが、私は考えを変えました。このリンクを読んでください:https://stackoverflow.com/questions/21087564/gmail-smtp-is-not-working-in-ec2-instance – hiropon

+0

私はあなたがこの質問に答えて早すぎると信じています、@ hiropon、OPは、まだそれは "それは動作しません"手段を説明していません。これは認証されたSMTP(MSA)トランザクションのように見えるので、GoogleによるIPによるアクセスをブロックするのは本当に意味をなさない。 –

関連する問題