您的位置:

对于django错误TypeError('"bcc" argument must be a list or tuple')的解决

  发布时间:2023-04-02 22:57:51
报错的原因这个错误是因为在Django的`send_mail()`函数中,“bcc”参数必须是一个列表或元组。如果您传递给它的不是一个列表或元组,它会引发“bcc”参数必须是一个列表或元组的TypeError。举个例子这样你就可以使用上述的 send_mail() 发送邮件了

报错的原因

这个错误是因为在Django的`send_mail()`函数中,“bcc”参数必须是一个列表或元组。如果您传递给它的不是一个列表或元组,它会引发“bcc”参数必须是一个列表或元组的TypeError

如何解决

解决方法是确保在调用`send_mail()`函数时,您正在传递一个列表或元组作为“bcc”参数。

For Example:


from django.core.mail import send_mail

send_mail(
    'Subject',
    'Message',
    'from@example.com',
    ['to@example.com'],
    ['bcc@example.com'],
    fail_silently=False,
)

使用例子

是的,下面是一个简单的例子:


from django.core.mail import send_mail

send_mail(
    'Subject',
    'Message',
    'from@example.com',
    ['to1@example.com', 'to2@example.com'],
    ['bcc1@example.com', 'bcc2@example.com'],
    fail_silently=False,
)

这里我们将to,bcc 都设为一个邮件地址的列表的形式,并且在发送邮件时不会在程序中出现错误(fail_silently=False)

另外需要注意的是 你还需要配置你的邮件服务器, 在settings.py中设置相关信息(如:EMAIL_BACKEND,EMAIL_HOST,EMAIL_PORT,EMAIL_USE_TLS,EMAIL_USE_SSL,EMAIL_HOST_USER,EMAIL_HOST_PASSWORD)

这些配置设置都在Django文档里有详细说明。

举个例子:


EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = 'myemail@gmail.com'
EMAIL_HOST_PASSWORD = 'mypassword'

这样你就可以使用上述的 send_mail() 发送邮件了