Python 发送电子邮件时字符串索引超出范围
我在尝试使用Django EmailMultiAlternatives发送邮件时遇到以下错误:。我尝试搜索这个错误,但没有运气,我也尝试删除或更改电子邮件的每个变量,但没有运气 代码如下:Python 发送电子邮件时字符串索引超出范围,python,django,email,Python,Django,Email,我在尝试使用Django EmailMultiAlternatives发送邮件时遇到以下错误:。我尝试搜索这个错误,但没有运气,我也尝试删除或更改电子邮件的每个变量,但没有运气 代码如下: def spremembapodatkovproc(request): if request.method == 'POST': req_id = request.POST.get('req_num', 'Neznan ID zahtevka') old_email =
def spremembapodatkovproc(request):
if request.method == 'POST':
req_id = request.POST.get('req_num', 'Neznan ID zahtevka')
old_email = request.user.email
old_name = request.user.get_full_name
new_email = request.POST.get('email_new', 'Nov e-mail ni znan')
new_fname = request.POST.get('fname_new', 'Novo ime ni znano')
dokument = request.FILES.get('doc_file')
komentar = request.POST.get('comment', 'Ni komentarja')
# try:
plaintext = get_template('email/usr-data-change.txt')
htmly = get_template('email/usr-data-change.html')
d = Context(
{
'old_email': old_email,
'old_fname': old_name,
'new_email': new_email,
'new_fname': new_fname,
'req_id': req_id,
'komentar': komentar,
'user_ip': request.META.get('REMOTE_ADDR', 'IP Naslova ni mogoče pridobiti.')
}
)
subject, from_email, to = 'eBlagajna Sprememba podatkov', 'eblagajna@ksoft.si', ["info@korenc.eu"]
text_content = plaintext.render(d)
html_content = htmly.render(d)
print(text_content)
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
msg.attach_alternative(html_content, "text/html")
msg.mixed_subtype = 'related'
for f in ["templates\\email\\img1.png"]:
fp = open(os.path.join(BASE_DIR, f), 'rb')
msg_img = MIMEImage(fp.read())
fp.close()
msg_img.add_header('Content-ID', '<{}>'.format(f))
msg.attach(msg_img)
msg.send()
def SPREMEMBAPODATCOVPROC(请求):
如果request.method==“POST”:
req_id=request.POST.get('req_num','Neznan id zahtevka')
旧电子邮件=request.user.email
旧名称=request.user.get\u全名
new_email=request.POST.get('email_new','Nov email ni znan')
new\u fname=request.POST.get('fname\u new','Novo ime ni znano')
dokument=request.FILES.get('doc\u file')
komentar=request.POST.get('comment','Ni-komentarja')
#尝试:
明文=获取模板('email/usr data change.txt')
htmly=get_模板('email/usr data change.html')
d=上下文(
{
“旧电子邮件”:旧电子邮件,
“旧名称”:旧名称,
“新电子邮件”:新电子邮件,
“新名称”:新名称,
“请求id”:请求id,
“科门塔”:科门塔,
'user_ip':request.META.get('REMOTE_ADDR','ip Naslova ni mogoče pridobiti')
}
)
主题,从电子邮件发送至='eBlagajna Sprememba podatkov','eblagajna@ksoft.si', ["info@korenc.eu"]
text\u content=纯文本。呈现(d)
html\u content=htmly.render(d)
打印(文本内容)
msg=emailmultialternations(主题、文本内容、发件人/电子邮件[收件人])
msg.附加可选内容(html内容,“文本/html”)
msg.mixed_subtype='相关'
对于[“templates\\email\\img1.png”]中的f:
fp=open(os.path.join(BASE_DIR,f),'rb')
msg_img=MIMEImage(fp.read())
fp.close()
msg_img.add_标题('Content-ID',''.format(f))
附加消息(msg\u img)
msg.send()
感谢您的帮助。问题在于另一个列表中的电子邮件包装列表冗余 所以基本上变量
to=[”info@korenc.eu“]
,然后当线路运行时
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
它用括号再次将包装到。和[to]=[]info@korenc.eu“]]
,但它应该是简单的列表。因此,通过将问题行更改为
msg = EmailMultiAlternatives(subject, text_content, from_email, to)
一切正常。问题在于在另一个列表中有多余的电子邮件包装列表
所以基本上变量to=[”info@korenc.eu“]
,然后当线路运行时
msg = EmailMultiAlternatives(subject, text_content, from_email, [to])
它用括号再次将包装到。和[to]=[]info@korenc.eu“]]
,但它应该是简单的列表。因此,通过将问题行更改为
msg = EmailMultiAlternatives(subject, text_content, from_email, to)
一切正常。您有to=[”info@korenc.eu“]
并且在初始化EmailMultiAlternatives
实例时,您尝试将其包装在[]
括号中。尝试将EmailMultiAlternations(主题,文本内容,从电子邮件[到])更改为EmailMultiAlternations(主题,文本内容,从电子邮件,到)
您有到=[”info@korenc.eu“]
并且在初始化EmailMultiAlternatives
实例时,您尝试将其包装在[]
括号中。尝试将EmailMultiAlternations(主题、文本内容,从电子邮件[到])更改为EmailMultiAlternations(主题、文本内容,从电子邮件,到)