1

変数to(電子メールIDを持つ)をこのリストに追加してmsg["To"]、このリストに電子メールを送信しようとしています。エラーなどはありませんが、メールは送信されていません。toから変数を削除するとすぐにmsg["To"]、電子メールが正常に送信されます。どこが間違っているのですか?

def email (body,subject,to):
    msg = MIMEText("%s" % body)
    msg["Content-Type"] = "text/html"
    msg["From"] = "service@company.com"
    msg["To"] = to + "username@company.com"
    msg["Subject"] = '%s' % subject
    p = Popen(["/usr/sbin/sendmail", "-t"], stdin=PIPE)
    p.communicate(msg.as_string())
4

2 に答える 2

3

問題は、電子メール アドレスを持っている場合、2 番目を追加するとそれらがまとめて実行されることです。

to = "address1@example.com"
msg["To"] = to + "address2@example.com"
print msg["To"]
>>> address1@example.comaddress2@example.com

言うまでもなく、address1@example.comaddress2@example.comは有効な電子メール アドレスではなく、どの MTA もそれに口出しします。

RFC 822 およびその後継では、MTA はアドレス間にコンマを想定しているため、次のようになります。

msg["To"] = to + ", address2@example.com"

動作するはずです。

于 2013-01-04T01:06:19.293 に答える
2

to=to.strip() を追加すると修正されました..

于 2013-01-04T00:57:38.443 に答える