私はいくつかの検索を行いましたが、私のソリューションが機能しない理由がよくわかりませんでした。基本的に、文字列 (HTML コード) を取得して解析し、mailto リンク (難読化の一部として置き換えたい) を探す必要があります。これが私がこれまでに持っているものです:
string text = "<p>Some Person<br /> Person's Position<br />p. 123-456-7890<br /> e. <a title=\"Email Some Person\" target=\"_blank\" href=\"mailto:someperson%40domain.com\">someperson@domain.com</a></p>";
text = Server.UrlDecode(text);
string safeEmails = Regex.Replace(text, "(<a href=\"mailto:)(.*?)(%40)(.*?)(\">)(.*?)(</a>)", "<a class=\"mailme\" href=\"$2*$4\">$6</a>");
Response.Write( Server.HtmlDecode(safeEmails));
テキストは WYSIWYG テキスト エディター (おなじみの場合は Telrik RadEditor) から出力されますが、すべての意図と目的のために、そこから出力される内容を制御するためのアクセス権がありません。
基本的に、次のものを見つけて置き換える必要があります。
<a href="mailto:someone%40domain.com">someone@domain.com</a>
と:
<a class="mailme" href="someone@domain.com">someone@domain.com</a>
いくつかの背景: ハーベスターによる検出を回避する mailto リンクを作成しようとしています。問題は、電子メールの文字列を標準の mailto リンクとして受信することです。着信文字列を制御できないため、mailto は常に保護されていない mailto になります。私の目的は、それらすべてを見つけて難読化し、JavaScript を使用してリンクを「修正」し、人間の訪問者が mailto リンクを簡単に使用できるようにすることです。上記のコードの変更だけでなく、新しいアプローチにもオープンです。