对于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() 发送邮件了