Tôi thậm chí không chắc chắn cách gỡ lỗi này: Tôi đang sử dụng send_mail trong một chế độ xem của tôi ở Django. Nó hoạt động tốt khi sử dụng ứng dụng cục bộ (sử dụng cùng một cài đặt SMTP tôi sử dụng trong sản xuất), và nó hoạt động tốt từ vỏ trong sản xuất (một lần nữa, bằng cách sử dụng các thiết lập tương tự). Nhưng khi tôi thực sự sử dụng ứng dụng trong sản xuất, tin nhắn không gửi. Bất kỳ ý tưởng làm thế nào để khắc phục sự cố?Send_mail ở Django, hoạt động trong trình bao, hoạt động cục bộ, không phải ở chế độ xem
Tôi sẽ không dán toàn bộ chế độ xem nhưng đây là phần có liên quan.
if request.method == 'POST':
message, form = decideform(request.POST)
if form.is_valid():
invitation.status = form.cleaned_data['status']
invitation.save()
message, form = decideform(request.POST)
update = 'Thank you for updating your status.'
# Send an email confirming their change
subject = 'Confirming your RSVP [%s %s]' % (invitation.user.first_name, invitation.user.last_name)
body = message + ' Remember, the URL to update or change your RSVP is http://the.url%s.' % invitation.get_absolute_url()
send_mail(subject, body, '[email protected]', ['[email protected]', invitation.user.email], fail_silently=True)
Và đây là các bit tương ứng từ tập tin local_settings tôi, với các chi tiết nổi bật thay đổi vì lợi ích an ninh của:
EMAIL_HOST = 'mail.mydomain.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = '[email protected]'
DEFAULT_FROM_USER = '[email protected]'
EMAIL_HOST_PASSWORD = 'p4ssw0rd'
Chào mừng bạn đến với SO! Bạn đã thử sử dụng 'fail_silently = False' và tìm kiếm bất kỳ' SMTPException' nào chưa? –
Cảm ơn bạn, César! Tôi đã thử nó với cờ fail_silently thiết lập để False (cục bộ, trong vỏ sản xuất, và từ các ứng dụng trong sản xuất), và bắt không có SMTPExceptions tại bất kỳ điểm nào. (Tôi giả định rằng ứng dụng trong sản xuất sẽ viết ngoại lệ đó cho nhật ký lỗi.) – mthomps