【问题标题】:sending email templates in with django使用 django 发送电子邮件模板
【发布时间】:2010-10-20 09:01:21
【问题描述】:

我想用这样的模板发送一封电子邮件。

{% extends "base.html" %}

{% block content %}
<h2>Invoice Details</h2>
<div id="horizontalnav">
  <a href="/index/add_invoice">Add an Invoice</a>
  <a href="/index/work_orders">Add a Work Order</a>
  <a href="/index/add_payment">Add Payment</a>
</div>
<ul STYLE="border: 1px solid;float:left;padding:15px; width: 700px;">
<h2 STYLE="text-align: right; COLOR:blue; Font-family:ARIAL">
INVOICE</h2>
<br/>
  <b>company</b>
     <br/>
  <div id="list">
     {% for invoice in invoices_list %}
       <p style="text-align: right;">INVOICE # {{invoice.invoice_no}}<br/>
       {{invoice.date}}<br/>
       {{invoice.contract_info}}<br/>
       {% for invoice in invoice.work_orders.all %}
         {{invoice}}<br/>
       {% endfor %}
     {% endfor %}
   <p style="text-align: left">
   <p>To</p>
   {{client.company}}<br/>
   {{client.address}}<br/>
   {{client.city}}<br/>
   {{client.postcode}}<br/>
   <p>
    </div>
</ul>
{% endblock %}

我想发送带有 django 数据的完全 html 驱动的模板。但是我遇到了一些问题。我收到此错误。

"to" argument must be a list or tuple

我假设我对发送到电子邮件域的看法可能存在问题,但这不应该有问题。我不知何故被这个卡住了。

#views.py
    @login_required
    def invoice_mail(request):
        t = loader.get_template('registration/email.txt')
        c = Context({
        'invoices_list': 'invoices_list',
        'clients_list': 'clients_list',
        })
        send_mail('Welcome to My Project', t.render(c), 'joe@example.com', '[tom@example.com]', fail_silently=False)

【问题讨论】:

    标签: django views django-templates sendmail


    【解决方案1】:
    send_mail('Welcome to My Project', t.render(c), 'joe@example.com', '[tom@example.com]', fail_silently=False)
    

    必须是

    send_mail('Welcome to My Project', t.render(c), 'joe@example.com', ['tom@example.com'], fail_silently=False)
    

    【讨论】:

      【解决方案2】:

      错误信息相当明确。 send_mailto 参数是第四个位置参数,它需要是一个列表或元组。出于某种原因,您正在传递一个字符串,字符串内有括号。

      send_mail('Welcome to My Project', t.render(c), 'joe@example.com', 
                ['tom@example.com'], fail_silently=False)
      

      【讨论】:

        【解决方案3】:

        '[tom@example.com]' 不是一个列表,它是一个两端都有方括号的字符串。请改用['tom@example.com']

        【讨论】:

          猜你喜欢
          • 2020-09-08
          • 1970-01-01
          • 2018-07-11
          • 1970-01-01
          • 1970-01-01
          • 2012-05-17
          • 2020-09-11
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多