0

私の悪い。Postmark は明らかにインライン画像をサポートしていません。smtp-mail プロバイダを変更することで解決しました。

pylons を使用して TurboMail で電子メールを送信しようとしています。

html コンテンツに埋め込まれた画像を使用することを除いて、すべて正常に動作します。各画像の Content-ID ヘッダーが途中で失われているようです。

これは私のコードです:

def sendMail(to,subject,html_content,plain_content,images):
    from turbomail import Message as Mail
    mail = Mail(to=to,subject=subject)
    mail.plain = plain_content
    mail.rich = html_content

    for cid,path in images.iteritems():
        mail.embed(path,cid)

    mail.send()

私のテストでは、html コンテンツは次のとおりです。

<html>
  <header/>
  <body>
  <h1>Send images using TurboMail</h1>
  <img src="cid:img0" />
 </body>
</html>

そして、画像は次のように述べています:

{"img0":"path/to/img0"}
4

2 に答える 2

0

どうやら、Postmarkapp はインライン画像をサポートしていないようです。

于 2012-07-10T06:17:36.643 に答える
0

ファイル名と cid の両方を渡すと、TurboMailは cid を無視し、代わりにファイルのベース名を使用します。ファイル名には拡張子があり、cid には拡張子がないと思われます:

{"img0":"path/to/img0.png"}

img0.pngその場合、画像は代わりにcid で埋め込まれます。

代わりに、開いている画像ファイルを渡すことができます。TurboMail は名前を無視しません:

def sendMail(to,subject,html_content,plain_content,images):
    from turbomail import Message as Mail
    mail = Mail(to=to,subject=subject)
    mail.plain = plain_content
    mail.rich = html_content

    for cid,path in images.iteritems():
        mail.embed(open(path, 'rb'), cid)

    mail.send()

marrow.mailer代わりに使用します。これは同じパッケージの新しい名前ですが、.embed埋め込まれた画像と cid の処理において、メソッドが少し正気になりました。

この回答の以前の改訂では、骨髄とTurboMailが混同されており、.embed代わりに骨髄署名を参照していました。

于 2012-06-26T09:01:38.027 に答える