Yas*_*ari 4 python email django
我正在django.core.mail用来发送电子邮件.我希望在电子邮件的某些位置实现单个换行符,如下所示:
Line 1
Line 2
Line 3
Line 4
Run Code Online (Sandbox Code Playgroud)
我试着这样做使用\n后Line 1和Line 3,和\n\n后Line 2和Line 4.
当我发送电子邮件时,会收到这样的信息:
Line 1 Line 2
Line 3 Line 4
Run Code Online (Sandbox Code Playgroud)
根据其他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',
'noreply@test.com',
['myemail@gmail.com'],
)
Run Code Online (Sandbox Code Playgroud)
通过SendGrid使用SMTP发送,如我的settings.py文件中所指定:
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = 'myusername'
EMAIL_HOST_PASSWORD = 'mypassword'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Run Code Online (Sandbox Code Playgroud)
sol*_*oke 13
发生这种情况是因为您使用的是Sendgrid,在某些情况下会将纯文本消息转换为HTML.您很可能已将其配置为执行打开/单击跟踪,并且无法以纯文本格式执行此操作,因此会将您的邮件转换为HTML.
以上链接提供以下解决方案:
您可以关闭导致从纯文本转换为HTML的过滤器.
如果您使用空格开始每一行,这将在该行周围添加"预格式化"标记.
您可以使用双换行分隔新句子,这将在句子周围添加"段落"标记.
您可以将邮件转换为HTML,从而绕过我们完全转换它的需要
要全局禁用转换,请访问邮件设置 - >普通内容并启用抑制.
| 归档时间: |
|
| 查看次数: |
3542 次 |
| 最近记录: |