Как отключить ссылку электронной почты? - PullRequest
11 голосов
/ 16 февраля 2011

Я использую Ruby on Rails 3 и хочу отключить ссылку на адрес электронной почты в HTML электронном письме.

Например, если в электронном письме я отправляю какой-нибудь необработанный HTML-код, такой как

Hi, you email is: <br/>
test@email.com

Gmail автоматически обнаруживает, что это адрес электронной почты, и изменяет его на

Hi, you email is: <br/>
<a target="_blank" href="mailto:test@email.com">test@email.com</a>

Я хотел бы получить этот вывод

# Text without the 'mailto:' link
Hi, you email is:
test@email.com

Как я могу это сделать?

Ответы [ 6 ]

22 голосов
/ 05 октября 2012

У меня есть более естественное предложение: оберните адрес электронной почты / URL в гиперссылку привязки.

<a name="myname">test@email.com</a>

Поскольку текст уже обернут в гиперссылку, Gmail сдается и оставляет его в покое. :)

(Примечание: также работает для почтового клиента Apple.)

2 голосов
/ 05 апреля 2012

Даже у меня была такая же проблема.Gmail будет обнаруживать и преобразовывать почтовые адреса и IP-адреса в ссылки.Я использовал string.replace, чтобы заключить точки (.) И @ в блоки.И это прекрасно работает для меня.Пример кода Python выглядит так.

text = myname@gmail.com
chars = ['.','@']
encloseIn = 'span'

for char in chars:
    text = string.replace(text, char, '<'+encloseIn+'>'+char+'</'+encloseIn+'>')
2 голосов
/ 16 февраля 2011

Можно попробовать

Hi, you email is:<br />
test&#64;email&#46;com
0 голосов
/ 04 сентября 2018

Поздний ответ, но я думаю, что нашел способ обойти эту проблему с автоматической связью.

Самый простой и быстрый способ - добавить несоединение нулевой ширины между каждым алфавитом. Теперь это звучало сложно, поэтому я разработал небольшой скрипт, который упростил мне задачу. Запустите приведенный ниже код, добавьте адрес электронной почты (вставьте или введите), и он добавит необходимый код вокруг адреса электронной почты.

$('#userInput').keyup(function() {
    var s = $(this).val().trim();
    var text = "";
    for ( var i = 0; i < s.length; i++ )
        {
            text += s[i]+'&zwnj;' ;
        } 
    $('p').text( text );
});
#userInput{max-width:400px;width:100%;padding:10px 5px;}
*{outline:none;}
p,#userInput{font-family: 'Roboto', sans-serif;}
p{word-break:break-all;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<input type="text" id="userInput" />

<p></p>

Теперь этот код не работал на Outlook Mac (2011 и 2016). Единственный способ, которым я работал над этим, - добавление заголовка документа и добавление HTML

.

Идет в голову:

<meta content="telephone=no" name="format-detection">
<style>
    p.email a{color:#000000!important;text-decoration:none!important;}
</style>

Измените абзац, td или таблицу, чтобы иметь класс как email (или что вы выберете)

<p class="email"> contents </p>

Надеюсь, это поможет пользователям, которые ищут решение для удаления автоматических ссылок.

0 голосов
/ 12 октября 2016

Вам просто нужно добавить символ «пробел нулевой ширины», его код в HTML:

&#8203;

Этот код добавляет пробел в строку, где вам нужно. Для респектабельного решения вам необходимо дополнить этот метод тегом <nobr>, потому что с помощью этого тега вы можете предотвратить переход на следующую строку.

0 голосов
/ 16 февраля 2011

Единственный способ обойти это - преобразовать адрес электронной почты в изображение и включить его в электронное письмо. Конечно, это означает, что пользователь может не загружать изображение, а это значит, что он также не получит адрес электронной почты.

На самом деле все сводится к тому, что вы не можете контролировать действия Gmail или любого другого почтового клиента после получения электронного письма, так что другого пути нет. Это выбор Gmail или любого другого почтового клиента делать то, что они хотят, с электронными письмами, включая гиперссылки на электронные адреса.

Если вы очень непреклонны в отношении того, чтобы не преобразовывать электронные письма в гиперссылки, вы можете попытаться сделать что-то другое, чтобы скрыть тот факт, что это электронное письмо, например записать его вместо:

Hi, your email is:
test at email dot com

Конечно, это, вероятно, более запутанно. На вашем месте я бы просто согласился с тем, что Gmail будет гиперссылку на ваши электронные письма.

...