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

Я использую 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 ответов


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

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

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

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

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

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


даже у меня была такая же проблема. Gmail будет обнаруживать и преобразовывать почтовые адреса и ip-адреса в ссылки. Я использовал веревку.заменить, чтобы заключить точки (.) и @ в блоках. И меня это устраивает. пример кода python выглядит так.

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

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

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

&#8203;

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


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

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

$('#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 Мак (с 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>

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


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

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

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

Hi, your email is:
test at email dot com

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