Как отключить ссылку по электронной почте?

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

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

Hi, you email is: <br/>
[email protected]

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

Hi, you email is: <br/>
<a target="_blank" href="mailto:[email protected]">[email protected]</a>

Я хотел бы иметь этот выход

# Text without the 'mailto:' link
Hi, you email is:
[email protected]

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

Ответ 1

Вы можете попробовать

Hi, you email is:<br />
test&#64;email&#46;com

Ответ 2

У меня есть более естественное предложение: оберните email/url в гиперссылку якоря.

<a name="myname">[email protected]</a>

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

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

Ответ 3

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

text = [email protected]
chars = ['.','@']
encloseIn = 'span'

for char in chars:
    text = string.replace(text, char, '<'+encloseIn+'>'+char+'</'+encloseIn+'>')

Ответ 4

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

&#8203;

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

Ответ 5

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

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

$('#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>

Ответ 6

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

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

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

Hi, your email is:
test at email dot com

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