我django.core.mail
用来发送电子邮件。我想在电子邮件中的某些位置实现单个换行符,如下所示:
Line 1
Line 2
Line 3
Line 4
我尝试使用\n
afterLine 1
和Line 3
and和\n\n
afterLine 2
和这样做Line 4
。
当我发送电子邮件时,将收到如下消息:
Line 1 Line 2
Line 3 Line 4
根据对其他StackOverflow答案的建议,我尝试使用该django.template.loader.render_to_string
方法从文件生成适当的字符串,但是它会\n
在我放置它们的确切位置生成一个字符串,并在发送电子邮件时产生相同的不良结果。
当我将字符串打印到stdout时,它会根据需要显示。
总而言之,\n\n
可以使用,但是在\n
通过Django的发送电子邮件时可以转换为空格send_mail
。如何解决呢?请注意,这个问题是关于纯文本电子邮件,而不是HTML电子邮件。
编辑:源,如注释中所要求的:
from django.core.mail import send_mail
send_mail(
'Test subject',
'Line 1\nLine 2\n\nLine 3\nLine 4\n\n',
'[email protected]',
['[email protected]'],
)
按照我的settings.py
文件中的指定,通过SendGrid使用SMTP发送:
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'myusername'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
发生这种情况是因为您使用的是Sendgrid,在某些情况下,这会将您的纯文本消息转换为HTML。您很可能已将其配置为执行打开/单击跟踪,并且无法以纯文本格式进行这些操作,因此它将消息转换为HTML。
上面的链接提供了以下解决方案:
您可以关闭导致从纯文本到HTML转换的过滤器。
如果每行以空格开头,则会在该行周围添加一个“预格式化”标签。
您可以使用双换行符分隔新句子,这将在句子周围添加“段落”标签。
您可以将消息转换为HTML,而无需完全转换
要全局禁用转换,请访问邮件设置->纯内容并启用禁止。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句