Utf 8 通过openssl和s_客户端发送电子邮件SMPT的带有特殊字符的主题出错
我有一个Linux中的bash脚本用于发送电子邮件。我正在使用openssl和s_客户端的SMTP 它是多语言的,所以有时会有一些特殊字符(è,è…)正确地显示在正文中,但不会显示在任何基于Microsoft的主题中(Outlook、Hotmail…) 使用openssl 我使用以下命令:Utf 8 通过openssl和s_客户端发送电子邮件SMPT的带有特殊字符的主题出错,utf-8,outlook,openssl,smtp,mailx,Utf 8,Outlook,Openssl,Smtp,Mailx,我有一个Linux中的bash脚本用于发送电子邮件。我正在使用openssl和s_客户端的SMTP 它是多语言的,所以有时会有一些特殊字符(è,è…)正确地显示在正文中,但不会显示在任何基于Microsoft的主题中(Outlook、Hotmail…) 使用openssl 我使用以下命令: openssl s_客户端-crlf-quiet-starttls smtp-connect: 是一个纯文本文件,其中包含连接协议和电子邮件数据,如下所示 MAIL FROM: example@example
openssl s_客户端-crlf-quiet-starttls smtp-connect:
是一个纯文本文件,其中包含连接协议和电子邮件数据,如下所示
MAIL FROM: example@example.com
RCPT TO: emailto@emailto.com
DATA
From: Sender <example@example.com>
To: emailto@emailto.com
Subject: accès à ...
Some text with special characters as (è, à, ë...)
.
QUIT
可能是250-8BITMIME在这种情况下我怎么能改变它?我尝试添加-utf8,但它不起作用
使用mailx和postfix
我已经安装了mailutils包并配置了后缀。将智能主机添加到relayhost
并设置inet\u interfaces=loopback only
我已使用以下命令发送电子邮件:
echo“带有特殊字符的某些文本”| mailx-s“From:Some text with special charactersèa”-“发件人”Some_email@example.com
由于来自smarthost的UTF8,我收到错误消息:
status=bounched(需要SMTPUTF8,但主机未提供该功能
我在后缀中添加了参数,以避免出现错误smtputf8\u enable=no
如果我执行最后一个mail命令发送电子邮件,则会发送电子邮件,但特殊字符在基于Microsoft的电子邮件中打印错误,但在Gmail中打印正确
作为解决方法,我创建了一个包含特殊字符的正文失败。我发送为:
mailx-s“一些带有特殊字符的文本”-a“发件人”一些_email@example.com
此电子邮件在所有电子邮件帐户中都以正确的方式显示正文的特殊字符,但在基于Microsoft的帐户中,主题仍然是错误的
关于如何强制主题以正确的方式打印Microsoft基于的电子邮件的一些线索
提前感谢这里有很多要讨论的内容:
- 除非所有涉及的系统都支持扩展,否则不能在标头字段中使用UTF-8
- 扩展名仅表示正文中保留了8位内容(例如UTF-8,而ASCII仅为7位内容)。作为客户端,一旦服务器在对
命令的响应中表示支持EHLO
,则表示您使用8BITMIME
发送8位正文MAIL FROM:body=8BITMIME
- 如果所有涉及的服务器都支持
,您应该为接收邮件的客户端标记您的正文,标题为8BITMIME
,MIME版本:1.0
,以及内容传输编码:8bit
。如果不是所有人都支持内容类型:text/plain;charset=utf-8
,您必须使用8BITMIME
- 由于
未得到广泛支持,因此您必须根据对非ASCII进行编码。例如,主题SMTPUTF8
可以编码为“Buenos días!
=?ISO-8859-1?Q?=A1Buenos_d=EDas!
- 在
和MAIL FROM
命令中的地址周围需要尖括号。您的示例必须是RCPT TO
和MAIL FROM:
RCPT TO:
- 将客户端和服务器重置为初始状态后。作为客户端,您应该发送另一个
命令,服务器可以使用与TLS握手前不同的扩展名列表来响应该命令EHLO
- 并非所有服务器都支持,即使它们支持,您也应该在发送任何命令之前等待初始问候语,并等待服务器对
和EHLO
命令的响应,然后再继续。虽然您所做的工作可以起作用,但不遵守RFC标准也可以用于DATA
- 根据,日期是必填的标题字段
- 除非所有涉及的系统都支持扩展,否则不能在标头字段中使用UTF-8
- 扩展名仅表示正文中保留了8位内容(例如UTF-8,而ASCII仅为7位内容)。作为客户端,一旦服务器在对
命令的响应中表示支持EHLO
,则表示您使用8BITMIME
发送8位正文MAIL FROM:body=8BITMIME
- 如果所有涉及的服务器都支持
,您应该为接收邮件的客户端标记您的正文,标题为8BITMIME
,MIME版本:1.0
,以及内容传输编码:8bit
。如果不是所有人都支持内容类型:text/plain;charset=utf-8
,您必须使用8BITMIME
- 由于
未得到广泛支持,因此您必须根据对非ASCII进行编码。例如,主题SMTPUTF8
可以编码为“Buenos días!
=?ISO-8859-1?Q?=A1Buenos_d=EDas!
- 在
和MAIL FROM
命令中的地址周围需要尖括号。您的示例必须是RCPT TO
和MAIL FROM:
RCPT TO:
- 将客户端和服务器重置为初始状态后。作为客户端,您应该发送另一个
命令,服务器可以使用与TLS握手前不同的扩展名列表来响应该命令EHLO
- 并非所有服务器都支持,即使它们支持,您也应该在发送任何命令之前等待初始问候语,并等待服务器对
和EHLO
命令的响应,然后再继续。虽然您所做的工作可以起作用,但不遵守RFC标准也可以用于DATA
- 根据,日期是必填的标题字段
verify return:1
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign GCC R3 DV TLS CA 2020
verify return:1
depth=0 CN = *.<foodomain>
verify return:1
250 DSN
250-gefwml03e.<foodomain>
250-PIPELINING
250-SIZE 31457280
250-ETRN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
250 2.1.0 Ok
250 2.1.5 Ok
354 End data with <CR><LF>.<CR><LF>
250 2.0.0 Ok: queued as 27C77671AE7_3E83FBF
221 2.0.0 Bye