PHPMailer:超链接出现在outlook的括号中

Veg*_*eta 5 html php outlook hyperlink phpmailer

我使用phpmailer发送一封带有超链接的电子邮件.我有这个代码:

$body = "<a href='".DIR."activate.php?x=$id&y=$activasion'>".DIR."activate.php?x=$id&y=$activasion</a>";
require('classes/PHPMailerAutoload.php');
        $mail = new PHPMailer;
        $mail->CharSet = "UTF-8";
        $mail->SMTPDebug = 2;             // Enable verbose debug output
        $mail->isSMTP();                  // Set mailer to use SMTP
        $mail->Host = SMTP_HOST;          // Specify main and backup SMTP servers
        $mail->SMTPAuth = true;           // Enable SMTP authentication
        $mail->Username = SMTP_USER;      // SMTP username
        $mail->Password = SMTP_PASSWORD;  // SMTP password
        $mail->SMTPSecure = 'ssl';        // Enable TLS encryption, `ssl` also accepted
        $mail->Port = 465;                // TCP port to connect to
        $mail->setFrom(SMTP_USER);
        $mail->addAddress($to);           // Add a recipient Name is optional
        $mail->isHTML(true);              // Set email format to HTML
        $mail->Subject = $subject;
        $mail->Body    = $body;
        $mail->AltBody = $altbody;
        if(!$mail->send()) {
            echo $mail->ErrorInfo;
        }
Run Code Online (Sandbox Code Playgroud)

当我将电子邮件发送到Gmail地址并在Gmail中打开时,超链接看起来很好(我可以点击链接并重定向到该页面).

但是当我将它发送到Outlook时,超链接看起来像这样:

[my.domain.com/activate.php?x=52&y=aa1fdf437c526ee219decc1ea72fc266]my.domain.com/activate.php?x=52&y=aa1fdf437c526ee219decc1ea72fc266

关于可能出错的任何想法?

Mic*_*l_B 5

电子邮件客户端具有不同的呈现引擎。

gmail 似乎会在没有http://https://协议的情况下呈现链接。

Outlook 可能仍需要它。

尝试使用无协议(又名无方案)的 URL: //

$body = "<a href='//".DIR."activate.php?x=$id&y=$activasion'>".DIR."activate.php?x=$id&y=$activasion</a>";


编辑:

从注@Synchro的评论:

匿名/相对协议 URL 在电子邮件中是一个坏主意,因为除非您在网络邮件客户端中,否则您没有与之相关的基本协议,因此它们只会中断。让它明确,它会在任何地方工作,现在很难找到一个不使用 https 的好借口。