WindowsのSMTPサービスからISPのSMTPサーバにメールを中継してみた

smtpsvc_eventid_4006_01.jpgsmtpsvc_eventid_4006_02.jpgsmtpsvc_eventid_4006_03.jpg
Windowsが標準で持っている「SMTP Service」コンポーネントを追加し、テスト環境よりメールを送信しようとしたら、次のようなエラーが表示され送信できませんでした。

smtpsvc_eventid_4006_00.jpg

イベントの種類: 警告
イベント ソース: smtpsvc
イベント カテゴリ: なし
イベント ID: 4006
日付: 2011/03/06
時刻: 14:11:03
ユーザー: N/A
コンピュータ: SW016
説明:
リモート ドメイン 'gmail.com' への配信中に、ホスト '209.85.227.27' へのメッセージ配信に失敗しました。 原因は次のとおりです。The remote server did not respond to a connection attempt.

詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。


ポート自体の疎通をTelnetで確認すると、そもそもPort25自体の通信ができない感じ。
なるほど、これが「Outbound Port25 Blocking」というやつなんですね・・・。


そんな訳で、「SMTP Service」「Outbound Port25 Blocking」を微妙に回避してみるテスト。


そもそも、現象的には自分のIPアドレスから外部に向かうSMTP(TCP Port:25)がすべてブロックされているようなので、根本的な配信は無理のようです。
残る手段は、ISPが提供しているSMTPサーバに中継し、そこからの配信が上手くいきそう。

まずは管理ツールより「インターネット インフォメーション サービス (IIS) マネージャ」を起動。
smtpsvc_eventid_4006_04.jpg
「規定のSMTP仮想サーバー」を右クリックしてプロパティを選択します。

smtpsvc_eventid_4006_05.jpgsmtpsvc_eventid_4006_06.jpg
配信タブの右下に「詳細設定」ボタンがあるので、そこをクリック。
ここの設定に「スマートホスト」という入力欄があります。
そこへプロバイダのSMTPサーバ名を入力してOKボタン。

smtpsvc_eventid_4006_07.jpgsmtpsvc_eventid_4006_08.jpg
続いて同じ配信タブで、左下の「送信セキュリティ」をクリック。
チェックボックスで「基本認証」を選択し、ユーザー名とパスワードはプロバイダに対してSMTP認証に使用するものを入力します。
大手だと、自分の管理IP帯からは認証なしでもいけたりしますので、要テスト。

smtpsvc_eventid_4006_09.jpgsmtpsvc_eventid_4006_10.jpg
最後に同じ配信タブで、中央の「送信接続」ボタンをクリック。
TCPポートを「587」へ変更します。

以上でSMTP Serviceの設定は完了。
テストメールを送ってみて、無事にメールボックスへ届けばOKです。

やっていることは普通のメール送信の設定などと同じですが、BlatJなど使用してバッチよりメールを送ろうとすると、SMTP認証がちょっぴり邪魔になるんですよ。
そんな時にこの方法を使えば、システムを変更することなく今まで通りメールが送れます。

ただ、厳密にIP逆引きを行っているメールサーバに対しては、この方法で送ったメールはスパムメールと判定されてしまう可能性があります。そういう場合は従来どおり、固定IPを取得してIP逆引き設定を実施する必要あり。

スパマーのおかげでちょっぴり不自由ですが、仕方がないことですね。

| コメント(0) | トラックバック(0) |
■Yahoo!オークション おすすめ商品■
Web Services by Yahoo! JAPAN

トラックバック(0)

トラックバックURL: http://type-y.com/mt/mt-tb.cgi/1553

コメントする