2015-06-03 2 views
0

У меня есть странная проблема ..... Я играл с бэкэндом электронной почты django ... проверял как консоль, так и smtp backend ..... письмо отправляется дважды! Я не могу проследить, почему его Происходило ....Django Электронная почта отправляется дважды

вот вид, что вызывает отправки электронной почты операции:

from django.http import HttpResponse 
from django.core.mail import send_mail, EmailMessage 

def index(request): 
    if request.method in ('GET'): 
     print request.method 
     mail = EmailMessage(subject='Subject Here', body='Here be the msg!', from_email='[email protected]', to=['[email protected]']) 
     mail.send() 
     #send_mail(subject='Subject Here', message='Here be the msg!', from_email='[email protected]', recipient_list=['[email protected]']) 

    return HttpResponse('Mail Sent') 

Как можно видеть, я использовал как EmailMessage класс с методом отправки(), а также функция send_mail() ..... но оба ведут себя одинаково ..... и письмо отправляется дважды !!

Любая помощь?

+3

Операция 'print' также работает дважды? – rnevius

+0

еще один, в параметре 'to'' to = ['[email protected]'] 'ID электронной почты не может быть дублирован. –

+1

Просто подсказка ... вы, вероятно, захотите использовать POST вместо GET, чтобы избежать злоупотреблений. – JOSEFtw

ответ

0

У меня такая же проблема, и я потратил часы на поиск решения, которое, я думаю, нашел с помощью from this link. Я думаю, что основной причиной этой проблемы может быть мой веб-браузер. У меня есть АЯКС вызов к представлению Джанго с последующим window.redirect

request = $.ajax({ 
    url: "{% url 'add_to_cart' %}", 
    type: "post", 
    data: { 
     ajax: 'yes', 
     ids: JSON.stringify(IDs), 
     xxxx: $("#xxxx").val(), 
     csrfmiddlewaretoken: getCookie('csrftoken') 
    } 
}).done(function (response) { 
    if (response == "OK") { 
     $('#cart_name').val(''); 
     window.location.href = '/'; 
    } 
}); 

Я просто удалить window.location.href = '/'; Это предотвратить Брауэр, чтобы отправить два раза вызов Ajax. У меня не так много времени, чтобы выяснить, почему простой window.location.href = '/'; сделать второй нежелательный звонок.

Смежные вопросы