URL Link 在 phpmailer 中传递 Php 变量时无法点击

URL Link not clickable when a Php variable is passed onto it in phpmailer

我正在尝试将某些 php 变量作为可点击 link 的一部分传递,以便通过 PhpMailer 发送。为此,我在这里引用了一个解决方案,但仍然无法正常工作 source

$site = 'http://example.com';
$user_id = 100;

$msg="Please Click links below.<br> <br>
<a  href='$site/link1.php?id=$user_id'>Link 1</a><br><br>
<a  href='$site/link2.php'>Link 2</a>";         

$msg_body = "Here is your $msg";

这是我的问题: 当我 运行 代码时,电子邮件已成功发送,但 link1 和 link 2 不可点击。

下面是代码

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;



// Load Composer's autoloader
require 'vendor/autoload.php';

// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);

$site = 'http://example.com';
$user_id = 100;


$msg="Please Click links below.<br> <br>
<a  href='$site/link1.php?id=$user_id'>Link 1</a><br><br>
<a  href='$site/link2.php'>Link 2</a>";         

$msg_body = "Here is your $msg";



    //PHP Mailer Server settings goes here



    $mail->setFrom('henry@mysite.com', "Henry Good");
      $mail->addAddress($reciever@gmail.com, 'Ann Ball);     // Add a recipient
    $mail->isHTML(true); // Set email format to HTML
    $mail->Subject = 'My Email Subject';
    $mail->Body = $msg_body;
    $mail->AltBody = $msg_body; // for Plain text for non-HTML mails
   $sent =  $mail->send();
 

尝试做类似的事情:

  1. $mail->Body = html_entity_decode($msg_body);
  2. $mail->set('Body', $msg_body);
  3. 以任何方式尝试将您的邮件正文包装在 <html></html> 中以获得有效代码。类似于我下面的示例:

$mail->Body = sprintf('<html><body>%s<body><html>', $msg_body);

我希望其中的内容能帮助您解决问题。

到目前为止我发现的一个问题是您将 $site 和 $user_id 变量连接到 $msg 变量

的内容的方式
$site = 'http://example.com';
$user_id = 100;
$msg = "Please Click links below. <br/><br/><a href='" . $site . "/link1.php?id=" . $user_id .
        "'>Link</a><br><br><a href='" . $site . "/link2.php?id=" . $user_id . "'>Link2</a>";

有关字符串操作的更多信息https://www.php.net/manual/en/language.operators.string.php