联系我们 button/smtplib 转发详情
Contact Us button/smtplib forward details
我正在 python任何地方使用来制作网站。我已经建立了一个联系我们的页面,我正在尝试将用户提交的任何内容作为反馈,然后使用 smtplib 将信息转发给自己。我在他们的论坛上问过这个问题,但他们出于某种原因刚刚删除了我的 post.
这是我的 HTML 代码:
<title>Contact us!</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/contact.css') }}">
<div class="container">
<form action="contact">
<label for="report">Reason</label>
<select id="report" name="report">
<option value="Bug">Bug</option>
<option value="Suggestion">Suggestion</option>
<option value="Other">Other</option>
</select>
<label for="Subject">Subject</label>
<textarea id="Subject" name="Subject" placeholder="Write something.." style="height:200px"></textarea>
<input type="submit" value="Submit">
</form>
</div>
这里是 python 代码:
@app.route("/contact", methods=["GET", "POST"])
def feedback():
if request.method == 'GET':
return render_template("contact.html")
else:
result = "Thanks for the feedback!"
report = request.form['report']
Subject = request.form['Subject']
from email.mime.text import MIMEText
import smtplib
gmail_user = 'email@gmail.com'
gmail_password = 'password'
message = MIMEText(report)
message["Subject"] = Subject
message["From"] = gmail_user
message["To"] = gmail_user
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
server.sendmail(gmail_user, gmail_user, message.as_string())
server.close()
return render_template('settlement_return.html',result = result)
编辑:如果我手动设置报告并受制于一些杂项文本字符串,它会正常发送。但是试图获取某人提交的信息并没有给出任何结果。
正如上面评论中所讨论的那样——看起来问题是您在 form
标签中缺少 method="POST"
。这意味着表单是使用 GET
方法提交的,因此正在执行您视图中 if
语句的第一个分支中的代码,这意味着没有发送电子邮件。
我正在 python任何地方使用来制作网站。我已经建立了一个联系我们的页面,我正在尝试将用户提交的任何内容作为反馈,然后使用 smtplib 将信息转发给自己。我在他们的论坛上问过这个问题,但他们出于某种原因刚刚删除了我的 post.
这是我的 HTML 代码:
<title>Contact us!</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/contact.css') }}">
<div class="container">
<form action="contact">
<label for="report">Reason</label>
<select id="report" name="report">
<option value="Bug">Bug</option>
<option value="Suggestion">Suggestion</option>
<option value="Other">Other</option>
</select>
<label for="Subject">Subject</label>
<textarea id="Subject" name="Subject" placeholder="Write something.." style="height:200px"></textarea>
<input type="submit" value="Submit">
</form>
</div>
这里是 python 代码:
@app.route("/contact", methods=["GET", "POST"])
def feedback():
if request.method == 'GET':
return render_template("contact.html")
else:
result = "Thanks for the feedback!"
report = request.form['report']
Subject = request.form['Subject']
from email.mime.text import MIMEText
import smtplib
gmail_user = 'email@gmail.com'
gmail_password = 'password'
message = MIMEText(report)
message["Subject"] = Subject
message["From"] = gmail_user
message["To"] = gmail_user
server = smtplib.SMTP_SSL('smtp.gmail.com', 465)
server.ehlo()
server.login(gmail_user, gmail_password)
server.sendmail(gmail_user, gmail_user, message.as_string())
server.close()
return render_template('settlement_return.html',result = result)
编辑:如果我手动设置报告并受制于一些杂项文本字符串,它会正常发送。但是试图获取某人提交的信息并没有给出任何结果。
正如上面评论中所讨论的那样——看起来问题是您在 form
标签中缺少 method="POST"
。这意味着表单是使用 GET
方法提交的,因此正在执行您视图中 if
语句的第一个分支中的代码,这意味着没有发送电子邮件。