通过Sendgrid发送电子邮件时无法获得单个换行符

亚什·特瓦里(Yash Tewari)

django.core.mail用来发送电子邮件。我想在电子邮件中的某些位置实现单个换行符,如下所示:

Line 1
Line 2

Line 3
Line 4

我尝试使用\nafterLine 1Line 3and和\n\nafterLine 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。

上面的链接提供了以下解决方案:

  1. 您可以关闭导致从纯文本到HTML转换的过滤器。

  2. 如果每行以空格开头,则会在该行周围添加一个“预格式化”标签。

  3. 您可以使用双换行符分隔新句子,这将在句子周围添加“段落”标签。

  4. 您可以将消息转换为HTML,而无需完全转换

  5. 要全局禁用转换,请访问邮件设置->纯内容并启用禁止。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章