Tex-Edit Plus で迷惑メール対策

 ApplescriptTex-Edit Plus で迷惑メール対策:メール収集プログラムから電子メールアドレスを隠します。

Spam」は事前の受信者の許可なく、無差別且つ大量に送信される、広告や詐欺的内容を主とするメールです。いわゆる「迷惑メール」と呼んでいます。

電子メールアドレス収集ロボットはインターネット上に表示されている電子メールアドレスを自動的に収集して回ります。訪問者とコンタクトする手段としてメールアドレスを掲載している場合が多いですが、そのメールアドレスはスパム業者にとって有効なメールアドレスを収集するターゲットとなります。

この対策としてホームページに掲載するメールアドレスの文字をエンティティコードで表す方法があり、エンティティコードに書き換えるだけで、ホームページの表示等には影響が無く、HTML内に記述されたメールアドレスを自動収集するスパム業者のプログラムやウイルス、またロボット型の全文検索エンジンなどに情報収集されにくくなります。

使用方法:

  1. Tex-Edit Plus の書類内で電子メールアドレス(※半角ローマ字のみ)を選択します。
  2. Tex-Edit Plus のスクリプトメニューからアップルスクリプトを選択します(キーボードショートカットでアップルスクリプトを実行させることもできます)。
  3. 選択された電子メールアドレスはエンティティコードでエンコードされます。エンコードされた電子メールアドレスを自分のホームページ内の「mailto」タブで電子メールアドレスの代わりに挿入します。ブラウザ内で通常の電子メールアドレスリンクとして表示/機能します。


スクリプトの作成方法

  1. 下記のテキストをアップルのスクリプトエディタアプリケーションの新規書類へコピーします。
  2. スクリプトエディタのファイルメニューの「保存...」コマンドを選択します。
  3. 表示される保存ダイアログでアプリケーション名を入力して、保存場所を選択します。
  4. 保存ダイアログの「フォーマット」ポップアップメニューから「スクリプト」オプションを選択します。
  5. 保存ダイアログの「オプション」セクションの「実行専用」チェックボックスを選択します。
  6. 保存ダイアログの「保存」ボタンをクリックします。


Tex-Edit Plus を起動する時に「Scripts」フォルダに入っているコンパイル済みスクリプトは全て「スクリプト」メニュー内で表示されます。「Scripts」フォルダは Tex-Edit Plus アプリケーションと同じフォルダに入っていないとこの機能は無効になります。また、「Scripts」フォルダの名前を変更するとこの機能は無効になります。AppleScripts for Tex-Edit Archive のホームページから多数の Tex-Edit Plus 用アップルスクリプトをダウンロードすることもできます。

Tex-Edit Plus のスクリプトメニュー内のアップルスクリプトのキーボードショートカット設定(※すべて半角ローマ字で設定します)

  • コマンド:スクリプト名の最後に「_」(1つ)を追加します(例:私のスクリプト_0)。
  • シフト+コマンド:「__」(2つ)を追加します(例:私のスクリプト__0)。
  • ファンクションキー:「_」(1つ)+ F キーを追加します(例:私のスクリプト__F5)。
  • コマンド+ファンクションキー:「__」(2つ)+ F キーを追加します(例:私のスクリプト__F5)。
  • シフト+コマンド+ファンクションキー:「___」(3つ)+ F キーを追加します(例:私のスクリプト___F5)。


tell application "Tex-Edit Plus"
	tell window 1
		repeat with characterNumber from the number of characters to 1 by -1
			set character characterNumber to my getASCII(character characterNumber)
		end repeat
	end tell
end tell


on getASCII(theCharacter)
	-- convert the character to an ASCII number	
	set ascNum to ASCII number theCharacter
	--filter out spaces, control characters, and high ascii
	if ascNum > 32 and ascNum < 127 then
		--convert the number to a string
		set ascNum to ascNum as string
		-- pad with zeros if necessary
		if number of characters in ascNum = 2 then set ascNum to "0" & ascNum
		if number of characters in ascNum = 1 then set ascNum to "00" & ascNum
		return "&#" & ascNum & ";"
	else
		return theCharacter
	end if
end getASCII