前言:这篇博客以163邮箱为例,介绍怎么将html表单发送到163邮箱!这里先给大家展示实现结果:
接下来,我们就来讲实现啦!
pip install flask_mail
注:这里大家要记起来,这是用于登录第三方邮件客户端的专用密码,后面程序也会用到
⭐接下来我们就要来写前后端啦,我的文件结构是这样子的:
|- templates
|- mail.html
|- config.py
|- runserver.py
mail
Looking forward to your feedback!
该文件配置了使用的协议信息和发送方和接收方的邮箱信息
# 邮箱信息
# 这是你的邮箱服务器,例如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]"
该文件处理前端发送的请求,并实现发送邮件的功能。(具体信息根据功能修改)
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)