2013-07-31 23 views
7

Tất cả, tôi đang cố gắng thiết lập bình thư để gửi thông báo đến email của tôi khi người dùng đăng ký. Tôi không nhận được thông báo lỗi từ tập lệnh được sử dụng để gửi email, nhưng không có thư nào thực sự được gửi hoặc ít nhất là không có gì được nhận.Flask-Mail không gửi email, không có lỗi nào đang được báo cáo

Có tệp nhật ký có thể hiển thị nếu email đã được gửi, từ chối hoặc có thể xảy ra nếu có sự cố khi đăng nhập vào máy chủ? Làm thế nào để theo dõi vấn đề này?

Mọi ý tưởng ở đây?

Trả lời

18

Flask-Email sử dụng smtplib có thể đặt mức gỡ lỗi: https://github.com/mattupstate/flask-mail/blob/master/flask_mail.py#L139. Bạn có thể đặt nó với MAIL_DEBUG = True hoặc DEBUG = True. Ngoài ra, hãy kiểm tra xem MAIL_SUPPRESS_SEND = FalseTESTING = False.

Với debug tôi có thể thấy cơ bản dở dang stdout mail: thành công, thất bại, người nhận và vv

Xem chi tiết: http://pythonhosted.org/Flask-Mail/#configuring-flask-mail.

0

tbicr có khả năng sửa chữa nhiều nhất, trước tiên hãy kiểm tra MAIL_SUPPRESS_SEND.

gì đã kết thúc đốt tôi (bị mới để Flask) là khi bạn khởi tạo đối tượng Mail() của bạn, hãy chắc chắn rằng nó là sau bạn đã thiết lập các giá trị app.config của bạn. Đối tượng Mail() không quay trở lại và xem xét các giá trị này sau thực tế, vì vậy chúng sẽ mặc định thành các giá trị không hợp lệ. Điều gây bực bội là bạn sẽ không thấy bất kỳ lỗi nào khi cố gửi tin nhắn với các giá trị mặc định/không hợp lệ. Ít nhất không phải là bài đăng của tôi.

0

Tôi biết bài đăng này là từ một thời gian trước, nhưng tôi chỉ chạy vào cùng một vấn đề. Giống như @tbicr được đề cập, hãy đảm bảo rằng app.testing được đặt thành False. Vì nó khẳng định trong Flask-Mail docs here:

"Nếu thiết TESTING được thiết lập để True, email sẽ bị đè nén Calling send() vào tin nhắn của bạn sẽ không dẫn đến bất kỳ tin nhắn được thực sự được gửi.."

Đây chính xác là vấn đề của tôi. Tôi đã triển khai Google reCAPTCHA thành một trong các biểu mẫu của mình và app.testing được đặt thành True vì vậy tôi không phải nhấn vào hộp reCAPTCHA mỗi lần. Bằng cách xóa app.testing hoặc bằng cách đặt nó thành False, các email này có thể được gửi đi.

Các vấn đề liên quan