我正在尝试在 web2py 中创建一个表单,它在提交时向电子邮件帐户发送消息,主要是我使用 SQLFORM.factory 创建表单,然后我使用 gluon.tools 导入邮件来导入发送电子邮件功能。我已经设置了我能想到的一切,但仍然在 web2py 中运行此代码,它给出了“无法发送电子邮件抱歉”。
from gluon.tools import Mail
mail = Mail()
mail.settings.server = 'smtp@gmail.com:465'
mail.settings.sender = 'myemail@gmail.com'
mail.settings.login = 'myemail@gmail.com:secret'
def index():
form = SQLFORM.factory(
Field('name', requires=IS_NOT_EMPTY()),
Field('email', requires =[ IS_EMAIL(error_message='invalid email!'), IS_NOT_EMPTY() ]),
Field('subject', requires=IS_NOT_EMPTY()),
Field('message', requires=IS_NOT_EMPTY(), type='text')
)
if form.process().accepted:
session.name = form.vars.name
session.email = form.vars.email
session.subject = form.vars.subject
session.message = form.vars.message
x = mail.send(to=['otheremail@yahoo.com'],
subject='project minerva',
message= "Hello this is an email send from minerva.com from contact us form.\nName:"+ session.name+" \nEmail : " + session.email +"\nSubject : "+session.subject +"\nMessage : "+session.message+ ".\n "
)
if x == True:
response.flash = 'email sent sucessfully.'
else:
response.flash = 'fail to send email sorry!'
#response.flash = 'form accepted.'
elif form.errors:
response.flash='form has errors.'
return dict(form=form)