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
关于可能出错的任何想法?
电子邮件客户端具有不同的呈现引擎。
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 的好借口。