【问题标题】:PHP mail encoding issuePHP邮件编码问题
【发布时间】:2021-07-19 14:06:31
【问题描述】:

我发现 php 邮件发送存在问题。我需要用 UTF-8 对邮件进行编码。主题工作正常,但消息已损坏。这是我的代码

    <?php
header('Content-Type: text/html; charset=utf-8'); 
if (isset($_POST['submit'])) {
    $name = $_POST['fname'];
    $mail = $_POST['fmail'];
    $discord = $_POST['fdiscord'];
    $vek = $_POST['fage'];
    $q1 = $_POST['fq1'];
    $q2 = $_POST['fq2'];
    $q3 = $_POST['fq3'];
    $q4 = $_POST['fq4'];
    $q5 = $_POST['fq5'];

    $mailto = "nabor@cloud-mc.cz";
    $headers = 'Content-Type: text/plain; charset=utf-8' . "\r\n";
    $headers .= 'Content-Transfer-Encoding: base64' . "\r\n";
    $headers = "From: ".$mail;
    $mailsub = '=?UTF-8?B?' . base64_encode("Nábor - ".$name) . '?=';
    $mailmsg =  '=?UTF-8?B?' . base64_encode("Odpověď na nábor:" .$name.".\n\n\nDiscord:".$discord.".\n\nVěk:".$vek);

    mail($mailto, $mailsub, $mailmsg, $headers);
    header("Location: done.html?mailsend");
}

?>

这就是邮件的样子

Subject Nábor - Kolombooo 来自 tvkolombooo@gmail.com 信息 T2Rwb3bEm8SPIG5hIG7DoWJvcjpLb2xvbWJvb28uCgoKRGlzY29yZDpLb2xvbWJvb28jMzI1Ny4KClbEm2s6MTU=

【问题讨论】:

  • 不要这样做:"From: ".$mail;它是伪造的,会导致您的邮件被阻止、垃圾邮件过滤或退回。您的脚本也容易受到标头注入攻击。看看实际使用PHPMailer(你用它来标记你的问题)是个好主意,它可以帮助你避免这样的问题。
  • 你的问题与phpmailer无关。
  • 如果回答对您有帮助,请标记为正确。

标签: php phpmailer


【解决方案1】:

问题似乎是您将消息编码为 base64:

改变这个:
base64_encode("Odpověď na nábor:" .$name.".\n\n\nDiscord:".$discord.".\n\nVěk:".$vek);
致此:
"Odpověď na nábor:" .$name.".\n\n\nDiscord:".$discord.".\n\nVěk:".$vek;

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2014-07-16
  • 2011-10-21
  • 2017-07-15
  • 2012-06-03
  • 2011-03-26
  • 1970-01-01
相关资源
最近更新 更多