web-dev-qa-db-ja.com

GmailがURLとメールアドレスのリンクを作成しないようにします

問題は、GmailがすべてのWebサイトのURLとメールアドレスのハイパーリンクを自動的に作成することです。リンクを作成しません。

var mailClient = new SmtpClient();
var 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";

var 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);

解決策はありますか?

37
Manjoor

URLの作成を停止する方法はありません。これは、テキストが有効なURLであるかどうかをメールプロバイダーが自動的に確認するためです。

これを克服する唯一の方法は、パーサーを欺くことです。パーサーがURLなどのように識別できないような方法で、スペース、HTMLタグなどを配置するだけです。

以下にいくつかのコード例を示します。

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

結果は次のとおりです。

http://foolishedsiteparser.com
_http://www.parsersmashed.com
[email protected]

21
perilbrain

<a style="color: #000000">link text</a>を追加するだけでこの問題を回避できました(hrefがないことに注意してください)。

style以外の属性を使用しようとはしていませんが、できると思います。私が使用する電子メールシステム(Blackbaud NetCommunity)は、プレーン<a>タグを削除するため、少なくとも1つの属性が必要でした。

30
Loko Web Design

私は同じ問題を抱えていて、このような電子メールを使用するかどうかを確認しました。

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

メールプロバイダーは、リンクとしてメールをフォローする傾向はありません。

お役に立てれば。

27
Teoman shipahi

perilbrain's answer からヒントを得て、これに使用する次の正規表現を実装しました。

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

この関数は、渡されたものでグローバルに置換されることに注意してください.OPの例のように、おそらく自然なテキストのブロックに対しては攻撃的すぎますが、多くの場合、テンプレートはパラメーター化されており、URLまたは電子メールを渡すだけでうまく機能します(実際にそれをテンプレートヘルパー関数として実装したので、まさにそれができます)。

この関数は、次の入力を変換します。

[email protected]
http://johndoe.com

これに:

john<span>.</span>doe<span>@</span>gmail<span>.</span>com
http<span>:</span>//johndoe<span>.</span>com

受け入れられた答えに示されているように<x>のような偽の短いタグを試してみたところ、GMailがそれを<u>タグに「インテリジェントに」置き換えたことがわかりました。私のテストでは、<span>タグは視覚的な副作用のないリンクを防ぎます。

9
Brian Moeskau

ばっちり成功!

これは、メールがリンクに変換されることを妨げるものではありませんが、フォントの色を設定し、そのリンクの下線を削除することができます。

Outlook 2010、2013、2016(Windowsも同様)、Outlook.com、iPhone 6s、iPad、Gmail Webインターフェイス、およびAppleメール8、9

バリエーション1:クリックしても反応しないリンク

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

バリエーション2:mailto-link。で働く ほぼ すべてのクライアント。ただし、Outlook.comでは、下線付きで青色にスタイル設定されます。

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

テキスト電子メールの言及されていない解決策が1つあります。同様のUnicode文字を使用してください。たとえば、ドットの代わりに1つのドットリーダー(U + 2024)。 B、hej.comとBěhej․comの外観を比較してください(最初のドットは通常のドット付きです)。

4
Petr Dlouhý

ここにリストされているソリューションはどれももう機能しないようです。印刷不可能なUnicode文字のアイデアを少し試したところ、このシーケンスが機能することがわかりました。

<span>foo&zwnj;.&zwnj;bar&zwnj;.&zwnj;com</span>

ここで、‌はZERO WIDTH NON-JOINERキャラクターです。

1
Tomek

現時点では、_<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);
}
_
1
Lukas Pierce

表示URLが「abcdUrl.com」であるとします。Gmailがリンクとして表示されないようにするには、アンカータグでラップします

<a href="" style="text-decoration:none;color:#333;"> abcdUrl.com </a>

これはGmailでうまく機能します。

0
Tapas Kumar

確認メッセージのタイトルにドットコムがありました。 @perilbrainに触発され、この問題を次のように展開しました

domain.com => domain<span>.</span>

php

$titre = str_replace(".", "<span>.</span>", $titre);

シンプル!

0
Andre

私は同じ問題を抱えていたので、数分後にそれを修正する方法を見つけました。

問題は、Gmailが自動的にaタグを追加するため、要素を直接ターゲットにすると機能しないため、さらに一歩進んでそのaタグのクラスを宣言する必要があることです。私の場合、電子メールは「」タグに含まれていたため、作業が簡単でした。だから私は次のようなクラスを作成しました:

.email_contact a {color:#ffffff!important; text-decoration: none!important;}

私のコードには「a」タグはありませんが、Gmailが自動的に追加するので、そこでキャッチする必要があります。これで、「span」や「div」、boomなどの電子メールを追加した場所でそのクラスを使用する必要があります。一定。

0
Shahin Shateri

これは古いスレッドですが、ここに来るかもしれない人々を助けたいです。リンク内にスパンを追加すると、Googleがリンクを次のように表示しないことがわかりました:

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