【问题标题】:PHP send email message coding in utf-8 [duplicate]PHP以utf-8发送电子邮件消息编码[重复]
【发布时间】:2017-08-27 10:14:08
【问题描述】:

我在从 php 代码发送邮件时遇到问题。我想在电子邮件中使用波兰语字符。我在堆栈上搜索了许多具有相同问题的帖子,但没有任何效果。

<?php
if(isset($_POST['submit'])){
 $to = "...@gmail.com";
 $from = $_POST['email'];
 $name = $_POST['name'];
 $phone = $_POST['phone'];
 $subject = "Wiadomość ze strony";
 $message = "Imię i Nazwisko: " . $name . "\nTelefon kontaktowy: " . $phone . "\n\nTreść wiadomości:" . "\n\n" . $_POST['msg'];

 $headers = "From: $from \r\n". 
            "MIME-Version: 1.0" . "\r\n" . 
            "Content-type: text/html; charset=UTF-8" . "\r\n";

 mail($to,$subject,$message,$headers);
 header('Location: index.html');
}
?>

我已经让我的朋友检查他的 vps 并且这段代码可以正常工作。所以服务器肯定有问题。我用的是 linuxpl.com。

我找到了解决方案。当我以 html 形式添加这一行时,波兰语字符可以正常工作。

accept-charset="ISO-8859-1"

【问题讨论】:

  • 你遇到的错误是什么?
  • 没有错误。波兰语字符无法正常工作,例如 Tre¶ć wiadomo¶ci: ąść
  • 检查您的 php 文件是否为 utf-8 编码,同时检查 gmail 传入消息的“Content-type:”标头。
  • 消息主题应以任何方式进行 mime 编码。
  • 是的,我保存为 utf-8 编码。 Gmail 标头:X-PHP-Originating-Script:2211:send_email.php 来自:...@gmail.com MIME 版本:1.0 内容类型:text/html; charset=UTF-8 消息 ID: 日期:2017 年 4 月 2 日星期日 17:34:37 +0200

标签: php html forms email


【解决方案1】:
mail($to,utf8_decode($subject),utf8_decode($message),utf8_decode($headers));

【讨论】:

  • 使用后我有这样的感觉:Tre?? wiadomo?ci:
  • 这个答案还有很大的改进空间。你能解释一下为什么你认为这会有所帮助吗?为什么 UTF 解码会改变什么?在不相关的说明中,这是回答问题的适当方式,我已投票拒绝您对问题的拟议编辑。在问题中添加解决方案会使可能会查看此问题的其他人感到困惑。
  • 就我而言,我使用 html_entity_decode();
猜你喜欢
  • 2018-06-08
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 2022-01-09
  • 2023-04-08
相关资源
最近更新 更多