邮件中的HTML内容显示断行或忽略换行符。

huangapple go评论85阅读模式
英文:

Mail with html content shows break lines or ignores newlines

问题

我正在通过Mandrill发送邮件给用户,同时我使用SMTP和Mandrill API进行发送。
邮件的内容是通过Go模板(.tpl)进行渲染的。
当我像这样放置模板时:

Hi {{.name}},
<br/>
This is support.  
<br/>

通过Mandrill API发送时,它可以正常发送,但是通过SMTP发送时,<br/>是可见的。
当我像这样使用模板(<br/>被替换为\n):

Hi {{.name}},

This is support.  

Mandrill会忽略它,并将所有内容显示在一行中,但是SMTP会正确显示换行符。
这个问题有什么解决方案吗?

我像这样渲染模板:

frame, err := template.New("foo").Parse(*templateString)
if err != nil {
    return nil, err
}
var doc bytes.Buffer
frame.Execute(&doc, *parameters)
temp := doc.String()
英文:

I am sending mail to users via mandrill and I using both smtp and mandrill api to send.
Content of the mail is rendered go template (.tpl)
When I put template like

Hi {{.name}},
<br/>
This is support.  
<br/>

it sends via mandrill api ok, but <br/> is visible when I send via smtp,
when use template like ( &lt;br/&gt; replaced with \n)

Hi {{.name}},

This is support.  

mandrill ignores that and shows everything in one line but smtp shows ok newlines.
What is a solution for this ?

I am rendering template like

frame, err := template.New(&quot;foo&quot;).Parse( *templateString )
if err != nil {
	return nil, err
}
var doc bytes.Buffer
frame.Execute( &amp;doc, *parameters )
temp := doc.String()

答案1

得分: 2

你发送的邮件是以HTML格式吗?如果是的话,你可以将所有内容包裹在<pre>标签中。

如果你不使用HTML,设置这个头部应该会有帮助:Mime-Type: text/plain

另外,尝试将换行符从\n改为\r\n

英文:

Are you sending the mail as HTML? If so, you can wrap everything in the &lt;pre&gt; tag.

If you're not using HTML, setting this header should help: Mime-Type: text/plain

Also, try changing your newlines from \n to \r\n.

huangapple
  • 本文由 发表于 2015年6月22日 17:25:14
  • 转载请务必保留本文链接:https://go.coder-hub.com/30976348.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定