2012-08-16 203 views
23

問題是gmail會自動爲所有網站網址和電子郵件地址創建超鏈接。我不想創建鏈接。我的阻止Gmail爲URL和電子郵件地址創建鏈接

SmtpClient MailClient = new SmtpClient(); 
MailMessage 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"; 
NetworkCredential 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); 

任何解決方案?

回答

19

Theres沒有辦法停止創建URL,因爲它由電子郵件提供程序自動檢查該文本是否是有效的URL。

解決這個問題的唯一方法就是欺騙解析器。只是把空格,HTML標籤,無論在這樣一種方式,解析器不能識別相似(敲打SO :)): -
http://foolishedsiteparser.com
_http://www.parsersmashed.com
noonesemail @ linkdead .COM
等多種途徑...;)

[從編譯: -

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

]

+0

它不工作。 Gmail自動將標記替換爲 @perilbrain – 2016-04-12 12:51:32

11

我有一個同樣的問題,結果發現,如果你使用電子郵件這樣的;

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

電子郵件提供商不傾向於將電子郵件作爲鏈接。

希望這會有所幫助。

+0

這是很好的解決方案,適用於Gmail,Outlook和其他應用程序。雖然沒有使用Apple Mail.app。 – psimekjr 2014-02-26 10:44:01

+0

@Psimekjr我遇到了與Apple郵件相同的問題。你必須包含一個href屬性(即使它的值是#) – user1380540 2016-05-20 20:32:29

18

我能夠解決這個問題只需加入<a style="color: #000000">link text</a>(注意沒有href)。

我還沒有嘗試過使用屬性,除了style,但我會想象你可以。我使用的電子郵件系統(Blackbaud NetCommunity)將刪除一個普通的<a>標籤,所以我必須至少有一個屬性。

+1

我可以證實這個技巧在GMail中起作用。 – 2013-12-14 06:31:04

+0

您需要用於Apple郵件的href才能應用樣式 – user1380540 2016-05-20 20:32:57

+0

這是最優雅的答案。 – Maleka 2017-11-16 15:01:09

6

perilbrain's answer得到暗示,我採取了以下的正則表達式,我使用的這個:

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

注意,此功能在全球替換掉在傳遞 - 這很可能是對的塊過於激進自然文本在OP的例子中,但通常模板參數化,這可以很好地工作,當你可以傳遞一個url或電子郵件(我實際上實現它作爲一個模板幫助函數,以便它確實如此)。

功能轉換以下輸入:

[email protected] 
http://johndoe.com 

成這樣:

請注意,我試圖像<x>假的短標籤,如圖接受的答案,發現Gmail的「智能「用<u>標籤代替它,我認爲這是一個功能,但並不理想。在我的測試中,<span>標籤阻止鏈接,並且沒有視覺上的副作用。

+0

非常有效地工作:-) @bmoeskau – 2016-04-12 12:44:29

+0

工作正常,但郵件現在在垃圾郵件中@ bmoeskau – 2016-04-12 13:01:45

+0

垃圾郵件過濾是一個龐大而複雜的話題,可以從客戶端到郵件服務器到ISP的不同級別觸發。有很多因素會影響郵件是否被標記爲垃圾郵件,並且各種垃圾郵件過濾器的工作方式不同。我懷疑*這種變化*會導致大多數垃圾郵件過濾器拒絕其他正常郵件,當然YMMV。 – 2016-04-12 22:34:26

0

雖然這是一個古老的線索,我想幫助那些可能到達這裏的人。我發現在鏈接內增加一個跨度使谷歌不會將其視爲鏈接,如下所示:

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

釘住它!

這並不妨礙電子郵件被轉換爲鏈接,但它允許您設置字體顏色並刪除該鏈接的下劃線。

它適用於我在litmus.com上測試過的所有電子郵件客戶端 - 包括Outlook 2010,2013,2016(也適用於Windows),Outlook.com,iPhone 6s,iPad,gmail網頁界面和Apple Mail 8,9

變形例1: 當在

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

變形例2單擊的不反應的鏈接: 一個mailto鏈路。在幾乎工程的所有客戶。然而,Outlook.com確實將其設置爲藍色並帶有下劃線。

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

我有一個未提及的文本電子郵件解決方案:使用類似的unicode字符。例如一個點領導(U + 2024)而不是點。比較一下,看起來Běhej.com和Běhej.com(第一個是有規則的點)。

0

現在簡單的包裝由<span>不工作,我認爲它的HTML實體替代更換@

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

另外,如果您的電子郵件中包含的電話號碼,你可以通過disable_tel_link功能逃避它:

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); 
} 
相關問題