私は、pythonとsendmailを使用してAWSサーバーから電子メールを送信しようとしています。 (私の地域ではSESは利用できません)。コマンドラインでメールを使って基本的な電子メールを送っても問題ありません。今私はPythonからこれをやろうとしています。私は以下のコードを持っています。それは間違いなく実行されているようですが、受信者の電子メールにはメールは表示されません。この段階では添付ファイルを送信していないことに注意してください。Python Base64でエンコードされた画像を添付ファイルとして添付したメール
パイロとコマンドライン経由で送信されたメールのマイログエントリが表示されます。コマンドラインで送信されたエントリの後に、 "配信受け入れメッセージ"が表示されますが、エントリは全く同じように見えます。
ここで何が間違って行くことだろうか?何が間違っているのかを知るために他の場所を調べることができますか? Python/Linuxから電子メールを送る簡単な方法はありますか?
import smtplib
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.utils import COMMASPACE, formatdate
from subprocess import Popen, PIPE
def send_mail(send_from, send_to, subject, text, files=None,
server="127.0.0.1"):
msg = MIMEMultipart()
#msg['From'] = send_from
msg['To'] = send_to
msg['Date'] = formatdate(localtime=True)
msg['Subject'] = subject
msg.attach(MIMEText(text))
# files should be a dictionary of filenames & base64 content
for fname in files or {}:
part = MIMEBase('image', 'jpeg')
part.set_payload(files[fname])
part.add_header('Content-Transfer-Encoding', 'base64')
part['Content-Disposition'] = 'attachment; filename="%s"' % fname
msg.attach(part)
print (msg.as_string())
p = Popen(["/usr/sbin/sendmail", "-t", "-oi"], stdin=PIPE)
p.communicate(msg.as_string())
あなたはhttps://stackoverflow.com/questions/3362600/how-to-send-email-attachments?rq=1これを試してみました –
実はそれは私が元々からの私のコードを適応場所のように見えています。私は実際にそれを直ちに処理することで動作させました。それをもう一度構築する。私は後で解決策を投稿します。 –