ai didi

PHP 邮件 : normal characters from link are being replaced

转载 作者:行者123 更新时间:2023-12-03 22:56:34 24 4
gpt4 key购买 nike

我正在使用一个简单的脚本来发送测试电子邮件:

 $sql = "SELECT name, update_url FROM `accounts` WHERE `subscription_id` = '4692'";
$res = mysqli_query($con, $sql);
$row = mysqli_fetch_assoc($res);

$name = $row["name"];
$updateUrl = $row["update_url"];

echo $updateUrl;

$subject = 'Subscription Payment Has Failed';
$message = 'Hi ' . $name . ',

Your subscription payment has failed. You can use the link below to update your payment information if needed:
' . $updateUrl .'

Cheers,
test name';
$headers = 'From: test ' . "\r\n";
$headers .= "Content-type: text/plain; charset=\"UTF-8\"; format=flowed \r\n";
$headers .= "Mime-Version: 1.0 \r\n";
$headers .= "Content-Transfer-Encoding: quoted-printable \r\n";

mail($email, $subject, $message, $headers);

我遇到的问题是,$updateUrl 即使它正确存储在数据库中,也会通过邮件发送损坏。

更准确地说:在数据库中,它是这样存储的: https://test.testsite.com/sub/update?user=406530&subscription=4692&hash=01d75f25e599e3c842ea5288f47e

在发送的邮件中,收到的是这样的: https://test.testsite.com/sub/update?user@6530&subscriptionF92&hash d75f25e599e3c842ea5288f47e

请注意,“=40”被“@”替换,“=46”被“F”替换,“=01”被空格替换。

这可能是什么原因造成的,这是什么类型的字符表示/编码?

值得一提的是,当以内容类型为 text/html 的 HTML 形式发送时,这种情况仍然会发生

最佳答案

这是 RFC2045 quoted-printable encoding并且是完全正常的。问题是你声明了一个内容传输编码,但没有对内容进行编码以匹配,所以任何看起来像 QP 编码的东西都会被错误地解码。您需要将它应用于整个 MIME 部分(在您的情况下是整个消息),而不仅仅是 URL,使用 quoted_printable_encode像这样:

mail($email, $subject, quoted_printable_encode($message), $headers);

调用它还会将您的文本换行到 76 个字符行,但这不会影响传递消息的外观,因为编码是无损的。

如果您没有使用 PHPMailer,请不要将您的问题标记为 PHPMailer。

关于PHP 邮件 : normal characters from link are being replaced,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36288439/

24 4 0
文章推荐: php - Composer 安装 - 需要 ext-mbstring
文章推荐: visual-studio-code - 安装 python 扩展时出错 "can' t 打开文件 'directory + filename' : [Errno 2] No such file or directory "
文章推荐: scala - 如何避免在具有家族多态性的 Scala 中调用 asInstanceOf
文章推荐: backbone.js - 如何重新格式化 Backbone 模型项目
行者123
个人简介

我是一名优秀的程序员,十分优秀!

滴滴打车优惠券免费领取
滴滴打车优惠券
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com