56
votes

Problem is Gmail automatically creates hyperlinks for all website URLs and email addresses. I do not want to create a link.

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 [email protected] as html without a link";

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

netMail.From = new MailAddress("########@m####.###", "######");
netMail.To.Add(new MailAddress("[email protected]"));
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);

Any solution?

13

13 Answers

46
votes

I had a same issue and found out if you use email like this;

<a rel="nofollow" style='text-decoration:none; color:#333'>[email protected]</a>

email providers does not tend to follow email as a link.

Hope this helps.

31
votes

I was able to get around this issue just by adding <a style="color: #000000">link text</a> (notice there is no href).

I haven't tried using attributes besides style but I would imagine you could. The email system that I use (Blackbaud NetCommunity) will strip out a plain <a> tag, so I had to have at least one attribute.

29
votes

There's no way to stop creating URLs, because its automatically checked by the email provider that whether the text is a valid URL.

Only way to overcome this is, deceiving the parser. Just put spaces, HTML tags, whatever in such a way that the parser can't identify like URL etc.

Here are a few code examples:

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

And the result is the following:

http://foolishedsiteparser.com
_http://www.parsersmashed.com
[email protected]

10
votes

Taking a cue from perilbrain's answer, I implemented the following regex that I use for this:

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

Note that this function replaces globally on whatever is passed in -- it would probably be too aggressive for blocks of natural text as in the OP's example, but often templates are parameterized and this works great when you can just pass it a url or email (I actually implemented it as a template helper function so that it does exactly that).

The function converts the following inputs:

[email protected]
http://johndoe.com

into this:

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

Note that I tried a fake short tag like <x> as shown in the accepted answer and found that GMail "intelligently" replaced it with <u> tags, which I assume is a feature, but was not desirable. In my testing, <span> tags prevent linking with no visual side-effects.

7
votes

Nailed it!

This does not prevent emails from being turned into links, but it allows you to set the font color and remove the underline of that link.

It works in all email clients I tested in on litmus.com - including Outlook 2010, 2013, 2016 (also on Windows), Outlook.com, iPhone 6s, iPad, gmail web interface and Apple Mail 8, 9

Variation 1: A link which does not react when clicked upon

<a href="#" style="text-decoration:none; color:#000">[email protected]</a>

Variation 2: A mailto-link. Works in almost all clients. Outlook.com does however style it blue and with underline.

<a href="mailto:[email protected]" style="text-decoration:none; color:#000">[email protected]</a>
5
votes

I have one unmentioned solution for textual emails: Use similar unicode characters. For example one dot leader (U+2024) instead of dot. Compare, how looks Běhej.com and Běhej․com (the first one is with regular dot).

4
votes

None of the solutions listed here seem to work any more. I experimented a little with the idea of non-printable Unicode characters and found this sequence to work:

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

Where ‌ is the ZERO WIDTH NON-JOINER character.

1
votes

For now simple wrapping by <span> is not working, I suggest replace @ by its html-entity alternative

function disable_email_link($email) {
  //encoder https://mothereff.in/html-entities
  $email = str_replace('@', '&#x40;', $email);
  $email = str_replace('.', '<span>.</span>', $email);
  return $email;
}

Also if your email contains phone numbers you can escape it by disable_tel_link function:

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);
}
1
votes

I had a dot com in the title of my confirmation message. Inspired by @perilbrain, I revolved my problem like this

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

php

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

simple !

0
votes

Eventhough this is a old thread i want to help people who might get here. I found that adding a span inside the link makes google not see it as a link see below:

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

Suppose your display url is "abcdUrl.com" To prevent gmail from showing as a link, wrap it in an anchor tag

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

This works well in gmail.

0
votes

i had the same problem so after few mins found out how to fix it.

the thing is if you target the element directly it won't work because gmail will automatically add aa "a" tag in there so you have to go one step farther and declare a class for that "a" tag. in my case the email was in a "" tag which i found it easier to work with. so what i did was create a class like this:

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

there is no "a" tag in my code but since gmail will add it automatically then you should catch it there. now you just have to use that class where ever you put your email add such as "span" or "div" and boom! fixed.

0
votes

While not the ideal solution, it may be an option for some. As of 3/12/2020, If you disable Multipart and send plain text only emails, you'll get the following hyperlinked results. Results appear to be the same whether at the beginning of a new line/sentence or mid sentence.

gmail results for linked email or url via plain text