2016-07-11 4 views
0

Djangoでは、send_emailにsettings.MANAGERSとチケット発行者に電子メールを送信させたいと思います。だからrecipient_listのそれらを設定しようとすると運がないporduced。私はクラスベースのビューを使用しています。設定に電子メールを送る方法.MANAGER in django recipient_list

# views.py 

... 
from django.conf import settings 
... 

class TicketCreate(CreateView): 
    model = Ticket 
    fields = ['title', 'question_detail',] 
    raise_exception = False 
    success_url = reverse_lazy('ticket_list')  
    template_name = 'ticket/ticket_form.html' 

    def form_valid(self, form): 
     form.instance.owner = self.request.user  

     send_mail(
      subject=form.cleaned_data.get('title').strip(), 
      message=form.cleaned_data.get('question_detail'), 
      from_email=form.cleaned_data.get('request.user.email'), 
      recipient_list=['settings.MANAGERS','request.user.email',], 
     ) 

     return super(TicketCreate, self).form_valid(form) 

# settings.py 
... 
MANAGERS = [ 
    ('Manager', '[email protected]'), 
] 

これを達成するための解決策は何ですか?

答えて

0

MANAGERSはタプルであり、各タプルの2番目の要素のみが関係します。これは動作します:

sender = form.cleaned_data.get('request.user.email') 
recipients = [a[1] for a in settings.MANAGERS] 
recipients.append(sender) 

send_mail(
    subject=form.cleaned_data.get('title').strip(), 
    message=form.cleaned_data.get('question_detail'), 
    from_email=sender, 
    recipient_list=recipients, 
) 

mail_managers機能があなたのためにこれのほとんどを行います - 唯一の違いは、それは(それがSERVER_EMAILを使用しています)を使用すると、送信者の電子メールを制御できないことであること。

他の人に代わってメールを送信することについては、に注意してください。送信者のドメインを制御する場合にのみお勧めします。それ以外の場合、メッセージはスパムとみなされ、送信側サーバーに関連する評判リスクが発生します。

0

私はログインしたユーザーにチケットを送信させ、すべてのユーザーは有効な電子メールアドレスで認証する必要があるため、ユーザーは再度電子メールアドレスを入力する必要はないと想定しています。だから、ユーザーのデータから電子メールを取得し、チケットに挿入します。

したがって、私は以下のように少し変更して、今すぐすべてクールに機能します。もう一度感謝し、あなたはスパムの問題について正しいです - 私のコントロール下にあります。

sender=self.request.user.email 
recipients = [a[1] for a in settings.MANAGERS] 
recipients.append(sender) 

send_mail(
    subject=form.cleaned_data.get('title').strip(), 
    message=form.cleaned_data.get('question_detail'), 
    from_email=sender, 
    recipient_list=recipients, 
) 
関連する問題