2017-09-18 5 views
0

電子商取引ウェブサイトのメールのようなメールコンテンツにインラインプロモーション画像を送信したいと思います。私はdjango-mail-queueパッケージを使用していますが、サポートされているかどうかはわかりません。あなたが私を助けてくれたら、私は感謝しています。django-mail-queueを使用してDjangoのインライン画像付きメールを送信する

もう一つの懸念事項は、ホストされているdjangoアプリケーションがメール受信者からアクセスできないということです。私は単にdjangoテンプレートに画像URLを提供することはできません。

答えて

1

画像をコンテキストとして送信し、それらをテンプレートとして渡すことができます。

from django.core.mail import EmailMessage 
from django.template import Context 
from django.template.loader import get_template 

def some_view(request): 
    template = get_template('myapp/email.html') 
    image_url ="static/images/sample_image.jpg" 
    context = Context({'user': user, 'other_info': info,'image_url':image_url}) 
    content = template.render(context) 
    if not user.email: 
     raise BadHeaderError('No email address given for {0}'.format(user)) 
    msg = EmailMessage(subject, content, from, to=[user.email,]) 
    msg.send() 

そして、テンプレートmyappに/ email.htmlで、この使用:このような

<img src="{{ image_url }}" ...> 

を、サーバ側の画像は電子メールの受信者にアクセスできない場合は、送信することができますimg srcには実際のイメージが格納されているソースurlが必要です。

イメージを他のイメージホスティングWebサイトでホストし、そのURLをimage_url変数に入れることができます。

+0

ありがとうございます!私のDjangoアプリケーションがホストされているサーバーは電子メール受信者からアクセスできないので、urlは動作しません。 – Darshit

+0

@Darshitそれでは、どのように受信者に画像を表示するつもりですか?方法はこれです。他の画像ホスティングWebサイトで画像をホストし、そのURLを** image_url **変数に入れることができます。 –

+0

電子メールコンテンツの画像を送信する方法はありますか? – Darshit

関連する問題