阻止Gmail为网址和电子邮件地址创建链接

时间:2012-08-16 13:43:48

标签: email gmail

问题是Gmail会自动为所有网站网址和电子邮件地址创建超链接。我不想创建链接。

var mailClient = new SmtpClient();
var netMail = new MailMessage();

msg = "I do not want www.google.com as a link at recipient end. <br/>";
msg += "I want my email addrress myemail@myudomain.com as html without a link";

var cr = new NetworkCredential("########", "###########");

netMail.From = new MailAddress("########@m####.###", "######");
netMail.To.Add(new MailAddress("abc@xyz.com"));
netMail.Subject = "Test Mail";
netMail.IsBodyHtml = true;
netMail.Body = msg;

mailClient.Host = "xyz.com";
mailClient.Port = 25;
mailClient.EnableSsl = false;
mailClient.Credentials = cr;
mailClient.Send(netMail);

任何解决方案?

13 个答案:

答案 0 :(得分:29)

我只需添加<a style="color: #000000">link text</a>(注意没有href)就可以解决这个问题。

我没有尝试使用除style之外的属性,但我想你可以。我使用的电子邮件系统(Blackbaud NetCommunity)将删除一个简单的<a>标记,因此我必须至少有一个属性。

答案 1 :(得分:24)

我遇到了同样的问题,并发现你是否使用这样的电子邮件;

<a rel="nofollow" style='text-decoration:none; color:#333'>test@mydomain.com</a>

电子邮件提供商不会将电子邮件视为链接。

希望这有帮助。

答案 2 :(得分:22)

无法停止创建网址,因为电子邮件提供商会自动检查该网址是否为有效网址。

只有这样才能克服这个问题,欺骗解析器。只需放置空格,HTML标签,以及解析器无法识别URL等的方式。

以下是一些代码示例:

http:<span>//foolishedsiteparser.com</span>
_http://www.parsersmashed.com
noonesemail<x>@</x>linkdead.com>

结果如下:

  

http://foolishedsiteparser.com
  _http://www.parsersmashed.com
  noonesemail@linkdead.com

答案 3 :(得分:8)

perilbrain's answer获取提示,我实现了以下用于此的正则表达式:

var unlink = function (val) {
  return val.replace(/([@\.:])/g, '<span>$1</span>');
};

请注意,此函数会在传入的内容中全局替换 - 对于自然文本块可能过于激进,如OP示例中所示,但通常模板已参数化,这在您可以正常使用时效果很好传递一个网址或电子邮件(我实际上将其作为模板帮助函数实现,以便它完全相同)。

该函数转换以下输入:

john.doe@gmail.com
http://johndoe.com

进入这个:

john<span>.</span>doe<span>@</span>gmail<span>.</span>com
http<span>:</span>//johndoe<span>.</span>com

请注意,我尝试了一个假的短标签,如<x>,如接受的答案所示,并发现GMail&#34;智能地&#34;用<u>标签替换它,我认为这是一个功能,但不可取。在我的测试中,<span>标记会阻止链接而不会产生视觉副作用。

答案 4 :(得分:6)

Nailed it!

这不会阻止电子邮件变成链接,但它允许您设置字体颜色并删除该链接的下划线。

适用于我在litmus.com上测试过的所有电子邮件客户端 - 包括Outlook 2010,2013,2016(也在Windows上),Outlook.com,iPhone 6s,iPad,gmail网页界面和Apple Mail 8,9

变奏1: 点击时没有反应的链接

<a href="#" style="text-decoration:none; color:#000">bjorn@rosell.dk</a>

变体2: mailto-link。适用于几乎所有客户。然而,Outlook.com将其设置为蓝色并带下划线。

<a href="mailto:bjorn@rosell.dk" style="text-decoration:none; color:#000">bjorn@rosell.dk</a>

答案 5 :(得分:4)

我有一个未提及的文本电子邮件解决方案:使用类似的unicode字符。例如,一个点引导(U + 2024)而不是点。比较一下,看看Běhej.com和Běhej.com(第一个是常规点)。

答案 6 :(得分:1)

现在<span>的简单包装不起作用,我建议用其html-entity替换<{1}}替换

@

此外,如果您的电子邮件包含电话号码,您可以通过function disable_email_link($email) { //encoder https://mothereff.in/html-entities $email = str_replace('@', '&#x40;', $email); $email = str_replace('.', '<span>.</span>', $email); return $email; } 功能转发它:

disable_tel_link

答案 7 :(得分:1)

此处列出的解决方案似乎都无法正常工作。我对不可打印的Unicode字符的想法进行了一些试验,发现此序列有效:

<span>foo&zwnj;.&zwnj;bar&zwnj;.&zwnj;com</span>

其中the是零宽度非JOINER字符。

答案 8 :(得分:0)

尽管这是一个旧帖子,我想帮助那些可能来到这里的人。我发现在链接中添加一个跨度会让谷歌看不到它作为一个链接,见下文:

<a href="https://www.link.dk" style="text-decoration: none   !important; color: #878787 !important;">www.<span></span>link.dk</a>

答案 9 :(得分:0)

我的确认消息标题中有一个点号com。 受@perilbrain的启发,我解决了这样的问题

domain.com => domain<span>.</span>

php

$titre = str_replace(".", "<span>.</span>", $titre);

简单!

答案 10 :(得分:0)

假设您的显示网址是“ abcdUrl.com” 为防止gmail显示为链接,请将其包装在锚定标记中

<a href="" style="text-decoration:none;color:#333;"> abcdUrl.com </a>

这在gmail中效果很好。

答案 11 :(得分:0)

我遇到了同样的问题,所以几分钟后,我发现了解决方法。

问题是,如果直接定位该元素将无法正常工作,因为gmail会在其中自动添加一个“ a”标签,因此您必须再走一步,为该“ a”标签声明一个类。就我而言,该电子邮件位于“”标签中,我发现它更易于使用。所以我要做的是创建一个像这样的类:

.email_contact a {color:#ffffff!important; text-decoration: none!important;}

我的代码中没有“ a”标签,但是由于gmail会自动添加它,因此您应该在该标签中找到它。现在,您只需要在将电子邮件添加到任何地方(例如“ span”或“ div”)和繁荣的地方使用该类!固定。

答案 12 :(得分:0)

虽然不是理想的解决方案,但对于某些人来说可能是一个选择。从2020年3月12日起,如果禁用Multipart并发送plain text only电子邮件,您将获得以下超链接结果。无论是换行/句子开头还是句子中间,结果都是相同的。

gmail results for linked email or url via plain text