我通过 Amazon SES 发送 HTML 电子邮件。
这是一个示例电子邮件 -
嘿,约翰,
山姆大叔刚刚申请了这份工作,需要有人在您在 JobHouse 上发布的 craigs list.com上发帖。
干杯。
现在,Gmail(可能还有其他电子邮件客户端)将超链接添加到list.com
. 如何防止这种情况?
服务器端解决方案:
用零宽度空格字符包围所有点(".") 和at 符号("@") 。
示例(PHP):
$email = 'name@server.com';
$email = str_replace (
array('@', '.'),
array('​@​', '​.​'),
$email
);
或者,您可以使用单位分隔符 ( 
) 或记录分隔符 ( 
),而不是上面的零宽度空格字符 ( ​
)。
从视觉上看,电子邮件/网站地址看起来很正常,就像替换之前一样。
注意.
:用它们的 html 代码( &分别)替换点和 at 符号@
并不能解决问题。Gmail 的算法仍将字符串解释为地址。
根据我在发送电子邮件时的理解,如果您没有在 HTML 内容中创建超链接,那么您将无法控制客户端如何呈现内容。如果有人使用 Gmail、Outlook、Mail 等查看电子邮件并注意到他们确定为 URL 的“模式”,则客户端应用程序将替换这些值。
见: http: //php.net/manual/en/function.imagettftext.php
例如,您可以创建一个简单的 PHP 脚本并将网址作为 URL 参数传入,然后它会返回带有该 URL 的图像。然后更改 HTML 代码,改为:
<img src="domain.com/path/to/your/text.php?text=craigslist.com" />
除了这样做之外,您无法控制客户端应用程序如何呈现您的文本。
理论上,您可以<text>yoururl.com</text>
在电子邮件生成中使用。
虽然我不是 100% 确定它是否可以在 GMail 中工作,因为我目前没有什么可以测试的。