如何解决邮件发送时Database Credentials中Hostname被识别为URL的问题
问题:如何让邮件中的数据库凭据Hostname以纯文本展示而非可点击URL?
发送包含数据库凭据的邮件时,其中的Hostname(如RDS_ID.us-east-1.rds.amazonaws.com)会被自动识别为可点击URL,但我需要它以纯文本形式展示。现有示例代码如下:
<div class="credentials"> <p><strong>Hostname:</strong> <span>RDS_ID.us-east-1.rds.amazonaws.com</span></p> <p><strong>Username:</strong> <span>RDS_Username</span></p> <p><strong>Password:</strong> <span>RDS_Password</span></p> </div>
解决方案
以下几种方法可阻止邮件客户端将Hostname识别为URL:
方法1:用HTML实体替换点号
将Hostname中的.替换为HTML实体.,既不影响显示效果,又能避免被识别为URL:
<div class="credentials"> <p><strong>Hostname:</strong> <span>RDS_ID.us-east-1.rds.amazonaws.com</span></p> <p><strong>Username:</strong> <span>RDS_Username</span></p> <p><strong>Password:</strong> <span>RDS_Password</span></p> </div>
方法2:用<code>标签包裹Hostname
多数邮件客户端会将<code>标签内的内容视为纯文本/代码,不会自动生成链接:
<div class="credentials"> <p><strong>Hostname:</strong> <code>RDS_ID.us-east-1.rds.amazonaws.com</code></p> <p><strong>Username:</strong> <span>RDS_Username</span></p> <p><strong>Password:</strong> <span>RDS_Password</span></p> </div>
方法3:插入不可见零宽度字符
在Hostname的点号前后插入零宽度空格(​),破坏URL识别规则,视觉上无任何影响:
<div class="credentials"> <p><strong>Hostname:</strong> <span>RDS_ID​.​us-east-1​.​rds​.​amazonaws​.​com</span></p> <p><strong>Username:</strong> <span>RDS_Username</span></p> <p><strong>Password:</strong> <span>RDS_Password</span></p> </div>
方法4:用CSS强制取消链接样式(部分客户端支持)
给Hostname所在元素添加CSS样式,强制文本无链接效果:
<div class="credentials"> <p><strong>Hostname:</strong> <span style="text-decoration: none !important; color: inherit !important;">RDS_ID.us-east-1.rds.amazonaws.com</span></p> <p><strong>Username:</strong> <span>RDS_Username</span></p> <p><strong>Password:</strong> <span>RDS_Password</span></p> </div>
注意:不同邮件客户端解析规则存在差异,建议优先测试方法1和方法2,兼容性更可靠。
内容的提问来源于stack exchange,提问作者Deepakvg
相关产品推荐
相关产品推荐

