2016-05-05 14 views
6

Khi tôi cố gắng gửi email bằng cách sử dụng Flask-Mail tới máy chủ SMTP của Gmail bằng cách sử dụng các cài đặt bên dưới, tôi nhận được [Errno -2] Name or service not known. Tôi làm cách nào để sửa cấu hình của mình để gửi email bằng Gmail?Định cấu hình Flask-Mail để sử dụng GMail

from flask import Flask, render_template, redirect, url_for 
from flask_mail import Mail, Message 

app = Flask(__name__) 
app.config.update(
    MAIL_SERVER='[email protected]', 
    MAIL_PORT=587, 
    MAIL_USE_SSL=True, 
    MAIL_USERNAME = 'ri******[email protected]', 
    MAIL_PASSWORD = 'Ma*****fe' 
) 

mail = Mail(app) 

@app.route('/send-mail/') 
def send_mail(): 
    msg = mail.send_message(
     'Send Mail tutorial!', 
     sender='ri******[email protected]', 
     recipients=['ri*********[email protected]'], 
     body="Congratulations you've succeeded!" 
    ) 
    return 'Mail sent' 

Trả lời

9
  1. Máy chủ là "smtp.gmail.com".
  2. Cổng phải khớp với loại bảo mật được sử dụng.
    • Nếu sử dụng STARTTLS với MAIL_USE_TLS = True, sau đó sử dụng MAIL_PORT = 587.
    • Nếu sử dụng SSL/TLS trực tiếp với MAIL_USE_SSL = True, sau đó sử dụng MAIL_PORT = 465.
    • Bật STARTTLS hoặc SSL/TLS, không phải cả hai.
  3. Tùy thuộc vào cài đặt bảo mật của tài khoản Google, bạn có thể cần phải tạo và sử dụng app password thay vì mật khẩu tài khoản. Điều này cũng có thể yêu cầu bật xác minh 2 bước. Bạn có lẽ nên thiết lập này anyway.
MAIL_SERVER = 'smtp.gmail.com' 
MAIL_PORT = 465 
MAIL_USE_SSL = True 
MAIL_USERNAME = '[email protected]' 
MAIL_PASSWORD = 'app password generated in step 3' 
6

Một bổ sung nhỏ nhưng quan trọng đối với câu trả lời davidism của:

Bạn phải có 'xác minh 2 bước' bật trên tài khoản Google của bạn trước khi bạn có thể thiết lập mật khẩu ứng dụng cụ thể .

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