60

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

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);

有什么解决办法吗?

4

13 回答 13

48

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

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

电子邮件提供商不倾向于将电子邮件作为链接。

希望这可以帮助。

于 2013-01-31T17:48:23.600 回答
31

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

除此之外,我还没有尝试过使用属性,style但我想你可以。我使用的电子邮件系统(Blackbaud NetCommunity)会去掉一个普通的<a>标签,所以我必须至少有一个属性。

于 2013-11-01T16:20:32.263 回答
30

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

克服这个问题的唯一方法是欺骗解析器。只需放置空格、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

于 2012-08-16T13:53:02.997 回答
13

perilbrain 的回答中得到启发,我实现了以下我用于此的正则表达式:

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

请注意,此函数会在传入的任何内容上全局替换——对于 OP 示例中的自然文本块,它可能过于激进,但模板通常是参数化的,当你可以只传递一个 url 或电子邮件时,这很有效(我实际上将它实现为模板辅助函数,以便它完全做到这一点)。

该函数转换以下输入:

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 “智能地”用<u>标签替换了它,我认为这是一个功能,但不是可取的。在我的测试中,<span>标签防止链接没有视觉副作用。

于 2014-05-01T07:56:28.500 回答
8

搞定了!

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

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

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

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

变体 2:mailto 链接。适用于几乎所有客户。Outlook.com 确实将其设置为蓝色并带有下划线。

<a href="mailto:bjorn@rosell.dk" style="text-decoration:none; color:#000">bjorn@rosell.dk</a>
于 2016-07-13T22:17:47.500 回答
8

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

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

其中 ‌ 是零宽度非连接字符。

于 2018-08-16T02:51:01.560 回答
5

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

于 2017-03-08T10:07:35.480 回答
2

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

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

php

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

简单的 !

于 2018-08-28T18:58:09.900 回答
1

现在简单的包装<span>不起作用,我建议用@它的 html-entity 替代品替换

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功能对其进行转义:

function wrap_span_letters($string) {
  $res = "";
  $length = strlen($string);
  for ($i = 0; $i < $length; $i++) {
    $res .= "<span>$string[$i]</span>";
  }
  return $res;
}

function disable_tel_link($phone) {
  return wrap_span_letters($phone);
}
于 2017-11-20T17:49:06.060 回答
0

尽管这是一个旧线程,但我想帮助可能到达这里的人。我发现在链接中添加跨度会使谷歌看不到它作为链接,见下文:

<a href="https://www.link.dk" style="text-decoration: none   !important; color: #878787 !important;">www.<span></span>link.dk</a>
于 2016-03-31T10:49:59.593 回答
0

我有同样的问题,所以几分钟后发现如何解决它。

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

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

我的代码中没有“a”标签,但由于 gmail 会自动添加它,所以你应该在那里捕捉它。现在你只需要在你放置电子邮件的地方使用那个类,比如“span”或“div”,然后繁荣!固定的。

于 2019-03-02T22:18:38.737 回答
0

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

通过纯文本链接电子邮件或网址的 gmail 结果

于 2020-03-12T14:46:27.327 回答
-1

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

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

这在 gmail 中运行良好。

于 2018-10-12T12:13:04.043 回答