从 php 发送邮件 - 字符集编码

发布于 2024-12-12 05:12:07 字数 690 浏览 0 评论 0原文

我正在通过 php 脚本发送一封用希腊语编写的自动邮件。 我尝试过:

 $headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
mail($to, $subject,$body, $headers) ;

正文和主题都是希腊语。 Hotmail 可以读取主题,但不能读取正文,而 gmail 可以很好地读取它。我用 iso-8859-7 (包含希腊字符)替换 utf-8 并且它有效。 1)知道为什么它不能与 utf-8 一起使用吗? 2)另外gmail正在邮件中写入我的服务器..我怎样才能防止这种情况发生?

I am sending an automated mail,written in Greek, from a php script.
I tried:

 $headers  = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/plain; charset=utf-8\r\n";
$headers .= "From: [email protected]\r\n";
$headers .= "Reply-To: [email protected]\r\n";
mail($to, $subject,$body, $headers) ;

The body and subject are in Greek. Hotmail is reading subject but not the body and gmail reads it well. I replaced utf-8 with iso-8859-7 (contains greek chars) and it works .
1) Any idea why it doesn't work with utf-8?
2) Also gmail is writing my server in the mail.. How can i prevent this from happening?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

苦行僧 2024-12-19 05:12:07

所有电子邮件标头(包括主题)都需要是纯 ASCII,您不能直接在电子邮件标头中使用 UTF-8 或其他编码。某些邮件服务可能能够检测其他编码并执行正确的操作,但这在技术上并不有效。使用 MIME 编码对标头进行编码,请参阅 使用PHP的邮件功能时如何在收件人姓名中使用特殊字符

All email headers, which includes the subject, need to be pure ASCII, you cannot use UTF-8 or other encodings directly in email headers. Some mail services may be able to detect other encodings and do the right thing, but it's not technically valid. Encode your headers using MIME encoding, see How to use special characters in recipients name when using PHP's mail function.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文