15

我正在使用 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

我怎样才能做到这一点?

4

8 回答 8

33

我有一个更自然的建议:将电子邮件/网址包装在锚超链接中。

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

由于文本已经包含在超链接中,Gmail 放弃并不管它。:)

(注意:也适用于 Apple 邮件客户端。)

于 2012-10-05T06:21:48.060 回答
1

你可以试试

Hi, you email is:<br />
test&#64;email&#46;com
于 2011-02-16T08:07:07.143 回答
1

即使我有同样的问题。Gmail 会检测邮件地址和 IP 地址并将其转换为链接。我使用 string.replace 将点 (.) 和 @ 括在块中。这对我来说很好。示例 python 代码看起来像。

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

for char in chars:
    text = string.replace(text, char, '<'+encloseIn+'>'+char+'</'+encloseIn+'>')
于 2012-04-05T09:39:04.660 回答
0

回复晚了,但我想我已经找到了解决这个自动链接问题的方法。

最简单和最快的方法是在每个字母之间添加一个零宽度非连接符。现在这听起来很难,所以我开发了一个小脚本,让我的事情变得简单。运行下面的代码,添加电子邮件地址(粘贴或键入),它会在电子邮件地址周围添加所需的代码。将结果粘贴到您的电子邮件中。

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

于 2018-09-04T02:44:56.587 回答
0

阅读所有答案,我在一篇 Joomla 文章中尝试了这个,它奏效了:

<p><strong>This is the email address: </strong><a name="whatever">youremail&#64domain.com</a></p>

结果:

这是电子邮件地址: yourremail@domain.com

在 Chrome 和 Firefox 上工作。

于 2020-01-23T15:44:01.493 回答
0

到 2021 年,对我来说最好的将是:

<a href='#' style='text-decoration: none; color:#000000' name='myname'>x@somemail.com</a>

解释

在尝试了 Gmail、Outlook 365、Mailinator 和 MyTrashMail 等不同服务后,结果如下:

•正如raugfer 所指出<a>的,将电子邮件包裹到锚点是必不可少的

href='#'对于 Outlook 是必需的。链接到假锚会禁用跳跃。

text-decoration: none, color:#000000删除下划线并将颜色从蓝色链接颜色更改为自然文本颜色。对于那些不仅要禁用链接,还要使其外观为 usuat 文本的人。

name='myname'不应该破坏,但是,我没有注意到它的必要性。

应该避免使用任何 javascript,它不会通过 gmail。例如onClick="return false;"<script>...</script>

如果您想将光标更改为默认值,cursor: default否则cursor: auto将无济于事。仅适用于 Gmail,请勿使用href='#'

正如米什拉王子所说,使用<span><myspan>适用于 Gmail ,但它对所有服务 (Outlook) 都没有帮助。

于 2021-05-22T12:59:06.970 回答
-1

您只需要添加“零宽度空格”字符,他在 HTML 中的代码是:

&#8203;

此代码在您需要的字符串中添加一个空格。对于一个受人尊敬的解决方案,您需要使用<nobr>标记来补充此方法,因为使用此标记可以防止中断到下一行。

于 2016-10-12T05:15:07.353 回答
-3

解决此问题的唯一方法是将电子邮件地址转换为图像并将其包含在电子邮件中。当然,这意味着用户可能会选择不下载图像,这意味着他们也不会获得电子邮件地址。

真正归结为,您无法控制 Gmail 或任何其他电子邮件客户端在收到电子邮件后会做什么,因此没有其他方法可以解决这个问题。这是 Gmail 或任何其他电子邮件客户端的选择,可以对电子邮件做他们想做的事情,其中​​包括超链接电子邮件地址。

如果您非常坚持不将电子邮件转换为超链接,您可以尝试做其他事情来隐藏它是电子邮件的事实,例如将其写出来:

Hi, your email is:
test at email dot com

当然,这可能更令人困惑。如果我是你,我会接受 Gmail 会超链接你的电子邮件这一事实。

于 2011-02-16T07:44:31.943 回答