flask_mail将html表单发送到邮箱

前言:这篇博客以163邮箱为例,介绍怎么将html表单发送到163邮箱!这里先给大家展示实现结果:
flask_mail将html表单发送到邮箱_第1张图片
接下来,我们就来讲实现啦!

文章目录

      • (一)配置:
        • 1. flask_mail包安装配置
        • 2. 163邮箱配置
          • (1)选择并开启 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
          • (2)设置客户端授权密码
      • (二)前端页面
        • 1.mail.html
          • (1)代码
          • (2)页面
      • (三)后端处理
        • 1.condig.py
        • 2.runserver.py
        • 3.运行结果
          • (1)前端提交表单成功
          • (2)发送邮件成功
          • (3)查看邮件详情

(一)配置:

1. flask_mail包安装配置

pip install flask_mail

2. 163邮箱配置

(1)选择并开启 POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

flask_mail将html表单发送到邮箱_第2张图片

(2)设置客户端授权密码

flask_mail将html表单发送到邮箱_第3张图片

这里大家要记起来,这是用于登录第三方邮件客户端的专用密码,后面程序也会用到


⭐接下来我们就要来写前后端啦,我的文件结构是这样子的:

 |- templates
     |- mail.html
 |- config.py
 |- runserver.py

(二)前端页面

1.mail.html

(1)代码



    mail
    



    


You can also email us at: [email protected] or fill in our contact form:

NAME        

EMAIL         

SUBJECT   

(2)页面

flask_mail将html表单发送到邮箱_第4张图片

(三)后端处理

1.condig.py

该文件配置了使用的协议信息和发送方和接收方的邮箱信息

# 邮箱信息
# 这是你的邮箱服务器,例如163:"smtp.163.com";QQ:"smtp.qq.com"
MAIL_SERVER = "smtp.163.com"

'''
下面是协议使用的端口号 
mail_use_tls是994
mail_use_ssl是465 
我选择的mail_use_ssl协议,所以MAIL_USE_SSL设置为True,端口号465
'''
MAIL_PORT = "465"
MAIL_USE_SSL = True

# 默认接受方邮箱
MAIL_USERNAME = "[email protected]"
# 客户端授权密码
MAIL_PASSWORD = "yourPassword"

# 默认发送方邮箱,可以是自己,同样也要开启POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
MAIL_DEFAULT_SENDER = "[email protected]"  

2.runserver.py

该文件处理前端发送的请求,并实现发送邮件的功能。(具体信息根据功能修改)

from flask_mail import Mail, Message
from flask import Flask,render_template,request
import config
app = Flask(__name__)
app.config.from_object(config)
mail = Mail(app)

TEMPLATES_AUTO_RELOAD = True
SEND_FILE_MAX_AGE_DEFAULT = 0

@app.route('/', methods=['GET','POST'])
def send_mail():
    return render_template('mail.html')

    
#用户发送邮件
@app.route('/email',methods=['POST'])
def email():
    body_text="from: "+request.form["user_name"]+"     "+request.form["user_email"]+"\n"+request.form["user_message"]
    message = Message(subject=request.form["user_subject"],recipients=['[email protected]'],body=body_text)
    try:
        mail.send(message)
        return "亲爱的  "+request.form["user_name"]+"  用户:\n 你的反馈已经送达我们的官方邮箱啦~"
    except Exception as e:
        print(e)
        return "抱歉,网络出错啦! 请重试!"
    else:
        return "success"
        
if __name__ == '__main__':
    app.run(debug=True)

3.运行结果

(1)前端提交表单成功

flask_mail将html表单发送到邮箱_第5张图片

(2)发送邮件成功

flask_mail将html表单发送到邮箱_第6张图片

(3)查看邮件详情

flask_mail将html表单发送到邮箱_第7张图片

你可能感兴趣的:(python)