Skip to main content
 首页 » 编程设计

python之如何从表单django发送电子邮件

2024年08月13日48exmyth

正如标题所说,我正在尝试从表单发送电子邮件,但无法正常工作:

如你所见:

<form method="POST" action=''> 
      {% csrf_token %} 
      <div class="control-group form-group"> 
        <div class="controls"> 
          <label>Nombre completo:</label> 
          <input type="text" class="form-control" id="nombre" required data-validation-required-message="Introduzca su nombre."> 
          <p class="help-block"></p> 
        </div> 
      </div> 
      <div class="control-group form-group"> 
        <div class="controls"> 
          <label>Asunto:</label> 
          <input type="text" class="form-control" id="asunto" required data-validation-required-message="Introduzca el asunto del correo."> 
        </div> 
      </div> 
      <div class="control-group form-group"> 
        <div class="controls"> 
          <label>Correo Electrónico:</label> 
          <input type="email" class="form-control" id="email" required data-validation-required-message="Introduzca su correo electrónico."> 
        </div> 
      </div> 
      <div class="control-group form-group"> 
        <div class="controls"> 
          <label>Mensaje:</label> 
          <textarea rows="10" cols="100" class="form-control" id="contenido" required data-validation-required-message="Escriba su mensaje" maxlength="999" style="resize:none"></textarea> 
        </div> 
      </div> 
      <button type="submit" class="btn btn-primary">Enviar mensaje</button> 
    </form> 

这是我的观点:

def contact(request): 
 
contactdata = contactData.objects.get() 
members = teamMembers.objects.filter(existencia=True) 
templates = Templates.objects.get(isSelected=True) 
categoria = Clasificacion.objects.filter(existencia=True) 
enterprise = enterprisedata.objects.get() 
content = request.POST.get('contenido', '') 
name = request.POST.get('nombre', '') 
email = request.POST.get('email', '') 
subject = request.POST.get('asunto', '') 
if request.method == 'POST' and email and name: 
    send_mail(subject, content, email, ['kike1996@hotmail.com'], fail_silently=False) 
contexto = {'categoria':categoria,'templates':templates,'members':members, 
            'contactdata':contactdata,'enterprise':enterprise} 
return render(request, 'contact/contact.html', contexto) 

我正在使用 POST 请求调用表单,但没有发送任何内容!

希望您能帮帮我,谢谢!

请您参考如下方法:

如果你想发送邮件,那么你必须在项目的 settings.py 文件中配置此设置

例如,如果您想通过您的 gmail 帐户发送电子邮件:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 
EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = "your gmail address" 
EMAIL_HOST_PASSWORD = 'your password' 
EMAIL_PORT = '587' 

并且还记得在您的 Google 帐户中启用安全性较低的应用以发送电子邮件。 在 View 中你可以这样尝试:

if request.method == 'POST' and email and name: 
    send_mail(subject, content, settings.EMAIL_HOST_USER, ['kike1996@hotmail.com'], fail_silently=False)