web-dev-qa-db-ja.com

スパムボットから電子メールを隠す効果的な方法

私のホームページでは、この方法を使用してスパムボットからメールを隠しています。

<a href="admin [at] example.com"
   rel="nofollow"
   onclick="this.href='mailto:' + 'admin' + '@' + 'example.com'">Contact me</a>

あなたはそれについてどう思いますか?効果的ですか?他にどのような方法を知っていますか?

176
abatishchev

これは私が使用した方法で、サーバー側インクルードを使用しています。 <!--#include file="emailObfuscator.include" -->ここで、emailObfuscator.includeには以下が含まれます。

<!-- // http://lists.evolt.org/archive/Week-of-Mon-20040202/154813.html -->
<script type="text/javascript">
    function gen_mail_to_link(lhs,rhs,subject) {
        document.write("<a href=\"mailto");
        document.write(":" + lhs + "@");
        document.write(rhs + "?subject=" + subject + "\">" + lhs + "@" + rhs + "<\/a>");
    }
</script>

アドレスを含めるには、JavaScriptを使用します。

<script type="text/javascript"> 
    gen_mail_to_link('john.doe','example.com','Feedback about your site...');
</script>
<noscript>
  <em>Email address protected by JavaScript. Activate JavaScript to see the email.</em>
</noscript>

2005年からGmail経由でメールを受信して​​いるため、スパムはほとんど問題ではありません。ですから、この方法がどれほど効果的かは言えません。このグラフを作成した この研究 (古いですが)を読みたいかもしれません:

enter image description here

94
Fuhrmanator

this way をご覧ください。かなり賢く、CSSを使用しています。

CSS

span.reverse {
  unicode-bidi: bidi-override;
  direction: rtl;
}

HTML

<span class="reverse">moc.rehtrebttam@retsambew</span>

上記のCSSは読み取り方向をオーバーライドし、正しい順序でユーザーにテキストを提示します。

それが役に立てば幸い

乾杯

82
roundcrisis

CSSでコンテンツと属性を操作する:

.cryptedmail:after {
  content: attr(data-name) "@" attr(data-domain) "." attr(data-tld); 
}
<a href="#" class="cryptedmail"
   data-name="info"
   data-domain="example"
   data-tld="org"
   onclick="window.location.href = 'mailto:' + this.dataset.name + '@' + this.dataset.domain + '.' + this.dataset.tld; return false;"></a>

JavaScriptが無効になっている場合、クリックイベントのみが機能せず、電子メールが引き続き表示されます。

別の興味深いアプローチ(少なくともクリックイベントなし)は、右から左のマークを使用して書き込み方向をオーバーライドすることです。これについての詳細: https://en.wikipedia.org/wiki/Right-to-left_mark

74
cyptus

私はこれについてまったく異なる見解を持っています。これには MailHide を使用します。

MailHideはGoogleのシステムであり、ユーザーはreCAPTCHAテストを完了してメールを公開する必要があります。

52
tvanfosson

元々は私の考えではありませんが、著者を見つけることができません:

<a href="mailto:[email protected]"
    onmouseover="this.href=this.href.replace(/x/g,'');">link</a>

必要なだけxを追加します。読み取り、コピー、貼り付けが完全に機能し、ボットが読み取ることはできません。

46
Andrew Swift

あなたができる唯一の確実な方法は、あなたのメールアドレスに送信するスクリプトに送信するフォームであるContact Meページを作成することだと思います。そうすれば、あなたの住所が決して一般に公開されることはありません。これは何らかの理由で望ましくないかもしれませんが、私はそれはかなり良い解決策だと思います。誰かのメールアドレスを自分のサイトからメールクライアントにコピー&ペーストしてメッセージを送信することを余儀なくされると、しばしば私をいらいらさせます。私はむしろ彼らのサイトのフォームを通してそれを正しくやりたいです。また、このアプローチを使用すると、匿名のコメントなどを送信できます。キャプチャなど、何らかのボット対策スキームを使用してフォームを保護してください。 SOでここで議論されているものはたくさんあります。

16
rmeador

電子メールアドレスをWebページ上のボットから安全にしますか? を参照してください。

Facebookや他の人があなたのメールアドレスの画像をレンダリングする方法が好きです。

過去にも The Enkoder を使用しました-正直に言ってとても良かったと思いました!

15
Galwegian

私の回答は多くの人に好かれることはありませんが、親指を立てる前に、ここで概説したポイントを考慮してください。

簡単に機械可読なものは、スパマーによって容易に機械可読になります。彼らの行動は私たちには愚かに見えますが、彼らは愚かな人々ではありません。彼らは革新的で機知に富んでいます。彼らはボットを使用して電子メールを収集するだけでなく、さまざまな方法を自由に使用でき、それに加えて、新しい新鮮な電子メールのリストの料金を支払うだけです。つまり、彼らは世界中で何千人ものブラックハットハッカーを雇って仕事を遂行しているということです。他の人のブラウザの画面をこすり取るマルウェアをコーディングする準備ができている人は、最終的にはあなたが達成しようとしている方法を役に立たないものにします。このスレッドはすでに10人以上のそのような人々によって読まれており、彼らは私たちを笑っています。それらのいくつかは、私たちが彼らに新しい挑戦を我慢できないことを知るために涙に飽きさえするかもしれません。

最終的には時間を節約しようとするのではなく、他の人の時間を節約しようとしていることに留意してください。このため、ここで余分な時間を費やすことを検討してください。簡単に実行できる魔法の弾丸はありません。サイトで100人の電子メールを発行する会社で働いており、1人あたり1日に1つのスパム電子メールを削減できる場合、年間36500のスパム電子メールについて話します。そのような電子メールの削除に平均で5秒かかる場合、私たちは年間約50労働時間を話します。不快感の減少量は言うまでもありません。だから、これに数時間を費やしてみませんか?

時間を資産と考えるのは、あなたと電子メールを受け取る人だけではありません。したがって、そのような方法で電子メールアドレスを難読化する方法を見つける必要があります。広く使用されている方法を使用して電子メールを難読化すると、実際にそれを解読することになります。その結果、クラッカーは数万または数十万の新鮮な電子メールではないにしても、数千の電子メールを入手します。そして彼らのために、彼らはお金を得るでしょう。

したがって、先に進み、独自のメソッドをコーディングしてください。これは、車輪の再発明が本当に成果をもたらすまれなケースです。機械可読ではなく、ユーザーエクスペリエンスを犠牲にすることなくユーザーの操作を必要とする方法を使用します。

私が言っていることの例をコード化するのに20分ほどかかりました。この例では、KnockoutJSを使用したのは、それが気に入っているからであり、おそらく自分で使用することはないでしょう。しかし、それはとにかく無関係です。これは、広く使用されていないカスタムソリューションです。それをクラックする方法は広大なインターネットの単一のページでしか機能しないので、それをクラックすることはそれをするための報酬をもたらさないでしょう。

フィドルは次のとおりです。 http://jsfiddle.net/hzaw6/

以下のコードは、良いコードの例ではありません。しかし、マシンがここで電子メールを処理することさえ理解するのが非常に難しいコードの簡単なサンプルです。そして、たとえそれができたとしても、大規模に実行することで報われるつもりはありません。

そして、はい、私はそれがIE = lte8で動作しないことを知っています。これは、「未定義またはnull参照のプロパティ「属性」を取得できません」が、単にデモなので実際の実装ではなく、本番環境での使用を意図したものではありません。独自のコードを自由に作成してください。コードはよりクールで、技術的にはより堅固です。

ああ、HTMLやjavascriptでメールやメールに名前を付けることはありません。メールやメールという名前のDOMとウィンドウオブジェクトをスクレイピングして、電子メールに一致するものが含まれているかどうかを確認するのは簡単すぎます。これが、電子メールが完全な形式で含まれる変数を必要としない理由であり、このような変数を割り当てる前にユーザーがページを操作することも必要な理由です。 JavaScriptオブジェクトモデルにDOM準備完了状態の電子メールアドレスが含まれている場合、それらをスパマーに公開しています。

HTML:

<div data-bind="foreach: contacts">
    <div class="contact">
        <div>
            <h5 data-bind="text: firstName + ' ' + lastName + ' / ' + department"></h5>
            <ul>
                <li>Phone: <span data-bind="text: phone"></span></li>
                <li><a href="#999" data-bind="click:$root.reveal">E-mail</a> <span data-bind="visible: $root.msgMeToThis() != ''"><input class="merged" data-bind="value: mPrefix" readonly="readonly" /><span data-bind="text: '@' + domain"></span></span></li>
            </ul>
        </div>
    </div>
</div>

JS

function ViewModel(){
    var self = this;

    self.contacts = ko.observableArray([
        { firstName:'John', mPrefix: 'john.doe', domain: 'domain.com', lastName: 'Doe', department: 'Sales', phone: '+358 12 345 6789' },
        { firstName:'Joe', mPrefix: 'joe.w', domain: 'wonder.com', lastName: 'Wonder', department: 'Time wasting', phone: '+358 98 765 4321' },
        { firstName:'Mike', mPrefix: 'yo', domain: 'rappin.com', lastName: 'Rophone', department: 'Audio', phone: '+358 11 222 3333' }
    ]);
    self.msgMeToThis = ko.observable('');
    self.reveal = function(m, e){
        var name = e.target.attributes.href.value;
        name = name.replace('#', '');
        self.msgMeToThis(name);
    };
}
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
10

PHPをサポートしている場合、次のようなことができます。

<img src="scriptname.php">

そして、scriptname.php:

<?php
header("Content-type: image/png");
// Your email address which will be shown in the image
$email    =    "[email protected]";
$length    =    (strlen($email)*8);
$im = @ImageCreate ($length, 20)
     or die ("Kann keinen neuen Gd-Bild-Stream erzeugen");
$background_color = ImageColorAllocate ($im, 255, 255, 255); // White: 255,255,255
$text_color = ImageColorAllocate ($im, 55, 103, 122);
imagestring($im, 3,5,2,$email, $text_color);
imagepng ($im);
?>
10
Matias

hexのHTMLエンティティ(例:@の&#x40)を使用して、文字を非表示にできます。これは便利な解決策です。正しいブラウザで翻訳されるため、通常のリンクを作成できます。欠点は、ボットが理論的にそれを翻訳できることですが、少し珍しいことです。これを使用して、ブログ上の電子メールを保護します。

別の解決策は、javascriptを使用でアドレスの一部を組み立て、その場でアドレスをデコードすることです。欠点は、javascriptが無効なブラウザではアドレスが表示されないことです。

最も効果的な解決策はイメージを使用ですが、ユーザーが手でアドレスをコピーしなければならないのは苦痛です。

あなたの解決策はかなり良いです、javascriptが無効になっているユーザーのみに欠点(手動で@を書く)を追加するだけです。また、より安全にすることもできます。

onclick="this.href='mailto:' + 'admin' + '&#x40;' + 'domain.com'"
7
ofaurax

私のお気に入りの方法の1つは、phpを使用して電子メールアドレスを難読化することです。典型的な例は、次のように文字をHEX値に変換することです。

function myobfiscate($emailaddress){
 $email= $emailaddress;                
 $length = strlen($email);                         
 for ($i = 0; $i < $length; $i++){                
 $obfuscatedEmail .= "&#" . ord($email[$i]).";";
 }
 echo $obfuscatedEmail;
}

そして、マークアップでは、次のように単純に呼び出します。

<a href="mailto:<?php echo myobfiscate('[email protected]')" title="Email me!"><?php echo myobfiscate('[email protected]');</a>

次に、ソースを調べてください、あなたはうれしい驚きでしょう!

7
SimonDowdles

これはあまり知られていないメソッドであるため、Spambotsはこれを解釈しません:)

最初に、cssを定義します。

email:before {
    content: "admin";
}

email:after {
    content: "@example.com";
}

これで、メールを表示したい場所に次のHTMLを挿入するだけです:

<div id="email"></div>

多田!

5
Arin

私は、CSSとjQueryの非常に単純な組み合わせを使用して、ユーザーに電子メールアドレスを正しく表示し、アンカーがクリックまたはホバーされたときにも動作します。

HTML:

<a href="mailto:[email protected]" id="lnkMail">moc.elpmaxe@em</a>

CSS:

#lnkMail {
    unicode-bidi: bidi-override;
    direction: rtl;
}

jQuery:

$('#lnkMail').hover(function(){
    // here you can use whatever replace you want
    var newHref = $(this).attr('href').replace('spam', 'com');
    $(this).attr('href', newHref);
});

ここ は実例です。

4
Sergiu

!-参照用にこれを追加すると、情報がどれほど古くなっているかはわかりませんが、スクリプトを使用する必要のないいくつかの簡単なソリューションについて説明しています

自分でこれを検索した後、私はこのページだけでなく、これらのページに出くわしました:

http://nadeausoftware.com/articles/2007/05/stop_spammer_email_harvesters_obfuscating_email_addresses

メールアドレスを逆にしてみてください

プレーンHTMLの例:

<bdo dir="rtl">moc.elpmaxe@nosrep</bdo>
Result : [email protected]

CSSを使用した同じ効果

CSS:
.reverse { unicode-bidi:bidi-override; direction:rtl; }
HTML:
<span class="reverse">moc.elpmaxe@nosrep</span>
Result : [email protected]

これを前述の方法のいずれかと組み合わせると、さらに効果的になる場合があります

3
Johann de Vries

1つの簡単な解決策は、実際の文字の代わりにHTMLエンティティを使用することです。たとえば、「[email protected]」は次のように変換されます。

<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;">email me</A>
3
Romain Linsolas

これが私の作業バージョンです。


フォールバックテキストを含むコンテナーをどこかに作成します。

<div id="knock_knock">Activate JavaScript, please.</div>

そして、DOM(w.r.t.レンダリング)の下部に次のスニペットを追加します。

<script>
  (function(d,id,lhs,rhs){
    d.getElementById(id).innerHTML = "<a rel=\"nofollow\" href=\"mailto"+":"+lhs+"@"+rhs+"\">"+"Mail"+"<\/a>";
  })(window.document, "knock_knock", "your.name", "example.com");
</script>

生成されたハイパーリンクを指定されたコンテナに追加します。

<div id="knock_knock"><a rel="nofollow" href="[email protected]">Mail</a></div>

さらに、ここに縮小版があります:

<script>(function(d,i,l,r){d.getElementById(i).innerHTML="<a rel=\"nofollow\" href=\"mailto"+":"+l+"@"+r+"\">"+"Mail"+"<\/a>";})(window.document,"knock_knock","your.name","example.com");</script>
3
Darius M.

Eメールアドレスを隠す最良の方法は、ボットプログラマーがこの「エンコード」を発見し、復号化アルゴリズムを実装するまで有効です。

JavaScriptを解釈するクローラーが多数あるため、JavaScriptオプションは長く機能しません。

答えはありません、私見。

2
guerda

[at]およびその他の変装を@シンボルとして認識するボットがおそらく存在します。したがって、これは本当に効果的な方法ではありません。

確かに、URLエンコードやHTML文字参照(またはその両方)などのエンコードを使用できます。

// PHP example
// encodes every character using URL encoding (%hh)
function foo($str) {
    $retVal = '';
    $length = strlen($str);
    for ($i=0; $i<$length; $i++) $retVal.=sprintf('%%%X', ord($str[$i]));
    return $retVal;
}
// encodes every character into HTML character references (&#xhh;)
function bar($str) {
    $retVal = '';
    $length = strlen($str);
    for ($i=0; $i<$length; $i++) $retVal.=sprintf('&#x%X;', ord($str[$i]));
    return $retVal;
}

$email = '[email protected]';
echo '<a href="'.bar('mailto:?to=' . foo(','.$email.'')).'">mail me</a>';

// output
// <a href="&#x6D;&#x61;&#x69;&#x6C;&#x74;&#x6F;&#x3A;&#x3F;&#x74;&#x6F;&#x3D;&#x25;&#x32;&#x43;&#x25;&#x37;&#x35;&#x25;&#x37;&#x33;&#x25;&#x36;&#x35;&#x25;&#x37;&#x32;&#x25;&#x34;&#x30;&#x25;&#x36;&#x35;&#x25;&#x37;&#x38;&#x25;&#x36;&#x31;&#x25;&#x36;&#x44;&#x25;&#x37;&#x30;&#x25;&#x36;&#x43;&#x25;&#x36;&#x35;&#x25;&#x32;&#x45;&#x25;&#x36;&#x33;&#x25;&#x36;&#x46;&#x25;&#x36;&#x44;">mail me</a>

しかし、それらを使用することは合法であるため、すべてのブラウザ/電子メールクライアントもこれらのエンコーディングを処理する必要があります。

2
Gumbo

私は SpamSpan のファンです-難読化されていますが、JSが無効になっている場合でも解読可能です。低トラフィックのWebサイトで約1年間しか使用していませんが、機能しているようです。

必要に応じて、電子メールを自動的にSpamSpansに変換するDrupal用のモジュールもあります。

2
Roman Starkov

そして私の機能。このトピックにある回答を見て作成しました。

 function antiboteEmail($email)
 {
        $html = '';

        $email = strrev($email);
        $randId = Rand(1, 500);

        $html .= '<span id="addr-'.$randId.'" class="addr">[turn javascript on to see the e-mail]</span>';
        $html .= <<<EOD
                <script>
                $(document).ready(function(){

                    var addr = "$email";
                    addr = addr.split("").reverse().join("");
                    $("#addr-$randId").html("<a href=\"mailto:" + addr + "\">" + addr + " </a>");
                });
                </script>
EOD;

        return $html;
    }

2つの方法を使用します:右から左のディレクトリとjavascriptの配置。

1
webrama.pl

別のオプション、私はフォント素晴らしいアイコンを好む

Fa実装:

<link rel="stylesheet" href="path/to/font-awesome/css/font-awesome.min.css">

メールアドレス:

<a href="mailto:[email protected]"><span class="label">info<i class="fa fa-at"></i>uploadimage.club</span></a>
1
Project Mayhem

最初に、javascriptが有効になっている場合にのみメールアドレスが表示されるようにします。この方法では、javascriptなしで読み取れるプレーンテキストはありません。

第二に、安全な機能を実装する方法は、<button>タグから離れることです。このタグには、タグ間にテキストを挿入する必要があります。これにより、コンピューターで読み取り可能になります。代わりに、onClickのjavascriptハンドラーで<input type="button">を試してください。次に、他の人が言及したすべての手法を使用して、安全な電子メール表記を実装します。

もう1つのオプションは、「クリックしてメールアドレスを表示」ボタンを使用することです。クリックすると、これはコード化されたメール(HTMLコードの文字)に変わります。別のクリックで、これは「mailto:email」機能にリダイレクトします

選択可能および選択不可の電子メールアドレスを使用した、コード化されていない最後のアイデアのバージョン:

<html>
<body>
<script type="text/javascript">
      e1="@domain";
      e2="me";
      e3=".extension";
email_link="mailto:"+e2+e1+e3;
</script>
<input type="text" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="text" onClick="this.value=email;" value="Click for mail-address"/>
<input type="button" onClick="this.onClick=window.open(email_link);" value="Click for mail"/>
<input type="button" onClick="this.value=email;" value="Click for mail-address"/>
</body></html>

これがあなたが望むものであるかどうかを確認し、他の人のアイデアと組み合わせてください。決して確信が持てない。

1
xaddict

hTML_CHARACTERはどうですか?:

joe&#064;mail.com

出力

[email protected]
1
T.Todua

リンクを右クリックして「URLをコピー」を選択すると機能しますか?そうでない場合、それはあまり理想的な状況ではありません(私はめったにmailtoリンクをクリックせず、メールアドレスをコピーしてメールアプリケーションに貼り付けるか、特定の時点で必要な場所に貼り付けることを好みます)。

以前はメールアドレス(UseNet、Webなど)をオンラインでかなり偏執的に保護していましたが、最近ではプログラムによってローカル部分とドメインを一致させる「スパムの可能性のあるターゲット」が実際に生成されると思われます。これは、場合によってはメールサーバーのログを調べたことに基づいています。存在しないアドレスへの配信試行はかなり多くなる傾向があります(アドレススクレイピングが非常に普及していた90年代後半にUseNetでぶら下がったスパムベイトの切り捨てられたバージョンを含む)。

1
Vatine

JavaScriptとHTMLを混在させるのは好きではないので、このソリューションを使用します。今のところ、私にとってはうまくいきます。

Ideadata- attributesで暗号化された情報を提供し、JS内で暗号化を解除することで、より複雑にすることができます。これは、文字を置き換えるか、単に逆にすることで簡単に行えます。

HTML

<span class="generate-email" data-part1="john" data-part2="gmail" data-part3="com">placeholder</span>

JS

$(function() {
    $('.generate-email').each(function() {
        var that = $(this);
        that.html(
            that.data('part1') + '@' + that.data('part2') + '.' + that.data('part3')
        );
    });  
});

それを試してください: http://jsfiddle.net/x6g9L817/

1
Mr. B.

オプション1:電子メールアドレスを複数の部分に分割し、これらの部分からJavaScriptで配列を作成します。次に、これらのパーツを正しい順序で結合し、.innerHTMLプロパティを使用して電子メールアドレスをWebページに追加します。

 <span id="email">  </span>   // blank tag

 <script>
 var parts = ["info", "XXXXabc", "com", "&#46;", "&#64;"];
 var email = parts[0] + parts[4] + parts[1] + parts[3] + parts[2];
 document.getElementById("email").innerHTML=email; 
 </script>

オプション2:メールテキストの代わりに画像を使用する

テキストからの画像作成者のウェブサイト: http://www.chxo.com/labelgen/

オプション3:「@」の代わりにATを使用し、「。」の代わりにDOTを使用できます

すなわち:

 info(AT)XXXabc(DOT)com 
1
saun4frsh

非常に多くのテクニックを使用した後、私は簡単な方法と非常にフレンドリーを見つけました、ボットは@Símboloを検索し、最近彼らはそのバリエーションを検索するので2つのテクニックを使用します

  1. domaintollsが使用するような画像にメールを書きますが、完全に機能するか、
  2. シンボロ(@)を次のような画像に置き換える

@ replace 画像altはalt = "@"であるため、ボットは画像を検出し、人間はそれを通常のアドレスとして見るため、コピーする場合はメールをコピーし、ジョブはdonであるため、コードは

<p>myname<img src="http://www.traidnt.net/vb/images/mail2.gif" width="11" height="9" alt="@" />domain.com</p>

メールをエンコードするjavascriptを出力するオープンライセンスPHPスクリプトがあります: http://www.maurits.vdschee.nl/php_hide_email/ 。その後、特定のメールを引数として使用してphp関数を簡単に呼び出すことができます。

1
Fanky

別の答えを提供する必要があります。遊ぶのが楽しいものを思いつきました。

多くの一般的な文字テーブルでは、@とa-zの文字が複数回現れることがわかりました。元の文字を新しいマッピングにマッピングして、スパムボットが電子メールの内容を把握しにくくすることができます。

文字列をループして、文字の文字コードを取得し、それに65248を追加し、その番号に基づいてhtmlエンティティを構築すると、人間が読める電子メールアドレスが得られます。

var str = '[email protected]';
str = str.toLowerCase().replace(/[\.@a-z]/gi, function(match, position, str){
    var num = str.charCodeAt(position);
    return ('&#' + (num + 65248) + ';');
});

動作するフィドルは次のとおりです。 http://jsfiddle.net/EhtSC/8/

同じように見えるキャラクター間のマッピングのより完全なセットを作成することにより、このアプローチを改善できます。ただし、たとえば、電子メールをメモ帳にコピー/貼り付けすると、多くのボックスが表示されます。

ユーザーエクスペリエンスの問題のいくつかを克服するために、リンクとして電子メールを作成しました。クリックすると、キャラクターが元に戻ります。

これを改善するために、必要に応じてより複雑な文字マッピングを作成できます。たとえば、「a」の場所で使用できる複数の文字が見つかった場合、それらにランダムにマッピングしないのはなぜですか。

おそらくこれまでで最も安全なアプローチではありませんが、私はそれで遊んで本当に楽しかったです:D

0

これはおそらく、インターネット上で最良かつ最も簡単なメールプロテクターです。非常にシンプルでありながら、すべての機能を追加する機能があります。

Webページ上の電子メールの保護

JavaScriptを使用します。私は何年もそれを正常に使用しています。

0
ITI

私はofauraxの答えが一番好きですが、もう少し隠されたメールのためにこれに変更します:

onclick="p1='admin'; p2='domain.com'; this.href='mailto:' + p1 + '& #x40;' + p2"
0
Donny

この問題に対する簡単なjqueryソリューションを次に示します。

<script type="text/javascript">
$(document).ready(function() {
    str1="mailto:";
    str2="info";
    str3="@test.com";
    $("#email_a").attr("href", str1+str2+str3);

});
</script>

<a href="#" id="email_a"><img src="sample.png"/></a>
0
Haluk