首页 > 解决方案 > 如何使用 python 中的 API 发送一封电子邮件,该电子邮件是使用 POST 方法以 html 形式收到的电子邮件?

问题描述

我正在尝试创建一个 HTML 表单,其中当用户输入他们的电子邮件时,它将立即执行发送给他们的电子邮件。我通过Mailgun API和一个超级简单的HTML表单来做到这一点,虽然表单可以工作,并且发送电子邮件的代码作为自己的单独python文件独立工作,但我一生都无法弄清楚两者如何连接。任何帮助或方向将不胜感激!

from flask import Flask, render_template, request
import requests
app = Flask("MyApp")

@app.route('/')
def main():
    return render_template("emailform.html")
@app.route("/mail", methods=["POST"])
def sign_up():
    form_data = request.form
    print form_data["email"]
    return "Thanks"

def send_simple_message():
    return requests.post(
    "https://api.mailgun.net/v3/sandboxurl",
         auth=("api", "myapikey"),
         data={"from": "Excited User <mailgun@sandboxurl.mailgun.org>",
            "to": "email",
            "subject": "This is a subject line",
            "text": "This is the email body"})
send_simple_message()
app.run(debug=True)

标签: python

解决方案


用代码替换您的print语句sign_up以发送消息。

您可能需要form_data填写电子邮件呼叫,用表单中send_simple_message的信息替换您正在使用的硬编码字符串(我建议将表单作为参数传递给send_simple_message)。


推荐阅读