python 使用Flask-Email发送电子邮件

hc8w905p  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(143)

我已经尝试了所有,我已经尝试了老的例子,我已经看到这里在stackoverflow和没有工作。代码,我正在使用:

from flask import Flask, render_template, request
from flask_mail import Mail, Message

app = Flask(__name__)

 # configuramos los parámetros de conexión al servidor de correo
 app.config['MAIL_SERVER'] = 'mail.test.com'
 app.config['MAIL_PORT'] = 465
 app.config['MAIL_USE_SSL'] = True
 app.config['MAIL_USERNAME'] = 'no-reply@test.com'
 app.config['MAIL_PASSWORD'] = 'no-reply'

 # creamos un objeto "Mail" que nos permitirá enviar correos
 mail = Mail(app)

 @app.route('/contact', methods=['GET', 'POST'])
 def contact():
    if request.method == 'POST':
      # obtenemos los datos del formulario
      name = 'Jesus'
      email = 'no-reply@test.com'
      message = 'Test'

      # creamos un mensaje de correo
      msg = Message(f'Mensaje de {name}', sender=email, recipients=['test@test.com'])
      msg.body = message
      mail.send(msg)

    return str(1)

if __name__ == '__main__':
  app.run()

它没有显示任何错误,我添加了try catch(),没有显示任何错误,所以我想知道我做错了什么?我从来没有收到电子邮件,我正在发送或测试它在localhost可能是问题?
谢啦,谢啦

gxwragnw

gxwragnw1#

虽然不是flask电子邮件,但这是我上一个flask网站上使用的电子邮件系统。另外,如果你使用Gmail,请确保你使用了谷歌应用程序,因为你的普通密码将不起作用。
我已经使用了一个env文件来存储我的密码,如果你想的话,你可以用文本来替换它

from matplotlib.style import context
import smtplib
import email
from email.message import EmailMessage
import os
import ssl

password = os.environ["GMAIL_PASSWORD"]
users =[""]
fromuser = os.environ["GMAIL_USER"]
touser = users  
subject = "stuff stuff"
body = " stuff stuff"
em = EmailMessage()
em.set_content(body)
em['From'] = fromuser
em['To'] = touser
em['Subject'] = subject 
context = ssl.create_default_context()
with smtplib.SMTP_SSL("smtp.gmail.com", 465, context=context) as server:
    server.login(fromuser, password)
    server.send_message(em)
    print("Email sent")
    server.quit()

相关问题