2017-07-18 3 views
1

ループを使用して大量のメールを送信しようとしましたが、うまくいきました。しかし、受信者数の増加に伴い、プロセス全体が完了するまでに長い時間がかかります。だから私はsend_mass_email()を使って電子メールを送ることにしました。残念ながら私のコードは動作していないようです。問題を見つけることもできません。助けてください。Django - send_mass_mail()を使用してバルクメールを送信

ビュー:

def noticeboard(request): 
    title = "Notice Board" 
    emaillists = [] 
    given_value = request.POST.get('radioGroup') 
    if given_value == 'All': 
     emaillist = MyUser.objects.all().values_list('email', flat=True) 
     for email in emaillist: 
      emaillists.append(str(email.encode('utf8'))) 
    if given_value == 'XYZ': 
    ..... 
    ..... 

    form = noticeboardForm(request.POST or None) 
    if form.is_valid():     
     FROM = "[email protected]"  
     SUBJECT = form.cleaned_data.get('subject').decode('utf-8') 
     TEXT = form.cleaned_data.get('body').decode('utf-8') 
     message = (SUBJECT, TEXT, FROM, emaillist) 
     try: 
      connection = get_connection() 
      connection.open()  
      send_mass_mail(message, fail_silently=False) 
      connection.close() 
      print('successfully sent the mail') 
     except: 
      print("failed to send mail")    

     return redirect('delivery_success') 

    return render(request, "noticeboardform.html", {"form": form, "title": title}) 


def delivery_success(request): 
    return render(request, 'delivery_success.html') 

答えて

0

Djangoのドキュメントは、最初のパラメータはデータのタプルでなければなりませんと言います。

send_mass_mail((message,), fail_silently=False) 

これが機能するかどうかを確認してください。

+0

これが正しいかどうかを確認してください。 'print'文を書いて何かを印刷するかどうかを調べます。コードが 'is_valid()'ブロックに入っているかどうかを知ることができます。 – MiniGunnR

+0

それは動作します。私の間違い。私の電子メールの本文は収集されていませんでした。したがって、エラー。 – surajitM

+0

ありがとう@MiniGunnR。 :) – surajitM

関連する問題