go - 使用chilkat发送电子邮件时如何正确显示字符?

标签 go chilkat chilkat-email

我使用chilkat 9.5.0.80。
问题是电子邮件中的某些字符显示错误。例如,此è在收件箱邮箱中显示为è。我希望它在设置时显示-è
这是最小的可复制代码:

email := chilkat.NewEmail()
email.SetCharset("utf-8")
email.AddTo("", toEmail)
email.SetSubject("test")
email.SetHtmlBody("è")
mailMan := chilkat.NewMailMan()
mailMan.SetSmtpHost(host)
mailMan.SetSmtpPort(25)
mailMan.SetSmtpUsername(username)
mailMan.SetSmtpPassword(password)
mailMan.SendEmail(email)
另外我注意到在不同的smtp服务器mime中的html主体部分的标题似乎有所不同。
首先正确显示,如下所示:
--------------050209010604000502060206
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=iso-8859-1
第二个错误,看起来像:
--------------030709010607010008060507
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html; charset=utf-8
字符集不同。
我想如果我将html主体设置为base64,它将显示正确。但是我没有在奇尔卡特找到这种可能性...
还尝试使用有效的html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
è
</body>
</html>

最佳答案

当我问我的问题时,我是对的,如何使用chilkat将html主体设置为base64?因为以下代码在某些smtp服务器上正确显示了特殊字符,但是在某些服务器上它们显示错误:

email := chilkat.NewEmail()
email.SetCharset("utf-8")
email.AddTo("", toEmail)
email.SetSubject("test")
email.SetHtmlBody("è")
mailMan := chilkat.NewMailMan()
mailMan.SetSmtpHost(host)
mailMan.SetSmtpPort(25)
mailMan.SetSmtpUsername(username)
mailMan.SetSmtpPassword(password)
mailMan.SendEmail(email)
下一个解决方案允许将HTML主体mime部分设置和发送为base64,并且可以正确显示在其他smtp服务器上:
email := chilkat.NewEmail()
part := chilkat.NewMime()
part.SetBodyFromEncoded("base64", 
base64.StdEncoding.EncodeToString([]byte(bodyContent)))
part.SetContentType("text/html")
part.SetCharset("UTF-8")
email.SetFromMimeText(*part.GetMime())
然后,您可以将其他字段设置为email对象,例如subject等。

关于go - 使用chilkat发送电子邮件时如何正确显示字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62996534/

相关文章:

go - 了解 Go 中的嵌入

go - 如何检查元素是否存在于没有for循环的数组中?

ios - 无法使用 Chilkat 库构建项目

asp.net - 如何编译x64 asp.net网站?

amazon-web-services - 为 AWIS 创建 AWS v4 签名

sockets - Go 中的 Unix 套接字

android - 包中没有导出的名称 "src/github.com/rohankeskar19/android_whisper"