ローカルで SMTP サーバを立て、PHP でメールの送信テストをしたい。
以前は MELON を利用してローカルからメールを送信。しかし、今回同じように試したところ、いつまで経ってもメールが送信されない。
ISP の OP25B による迷惑メールに対する対処
理由は「メールサーバの OP25B対策」によると、
インターネットに蔓延する迷惑メール(…)の対策として、大手 ISPはほぼ全てが OP25B(Outbound Port 25 Blocking)を実施するようになった。…
OP25Bとは、ISPが自社網内のユーザが撒き散らす迷惑メールを封じ込めることを目的として、自社網の動的IPアドレスのホストが網外の SMTPサーバに向けて25番ポートからメールを直送する処理を規制する技術である。 …
これに対する対処法は、
有効な解決策は、ISPが提供する中継サーバ(ポート番号は 25番あるいは 587番。ISPが特に指定したものがなくても、通常のメール送信用 SMTPサーバが使えるはず)を経由してメール送信するようにメールサーバを設定することである。
(同上より)
自分が利用している ISP の HP において、
OP25B
で検索したら、迷惑メール対策として、昨年より制限が加えられていたことがわかった。
このための新たなメールサーバのホストと、ポート番号 587 をメモ。
BlackJumboDog を利用する場合
SMTP サーバとして MELON を使う前は Radish を利用していた。
現在 Radish は サッポロワークス によると、Radishの後継バージョンとして、ニューBlackJumboDog(Ver5.x) が開発されています
そこで BlackJumboDog をダウンロード。
BJD.exe を起動。
設定
SMTP サーバを起動するために、
- メニューより、「オプション > メールサーバ > SMTP サーバ」
「SMTP サーバを使用する」をチェック。
「中継許可」タブにおいて、許可リスト優先に 127.0.0.1 を追加。
「ホスト設定」タブにおいて、
- 対象ドメインを * とし、転送サーバは上記でメモした ISP で指定されている メールサーバ と ポート番号 を記入。
- SMTP 認証にチェックを入れ、ISP から渡されたメールサーバにアクセスするためのユーザ名とパスワードを入力して追加。
「ACL」タブにおいて、127.0.0.1 からのアクセスのみを許可するように追加。
これによりメールを送信できるようになった。
ちなみに、上記「ホスト設定」の転送サーバに誤って空白文字を入力していたことに長いこと気づかず、なかなか使うことができなかった。 (+_+)
XAMPP の Mercury を利用する場合
xampp の中の Mercury には SMTP サーバの機能が含まれている。
XAMPP Control Panel を開き、Mercury の Start ボタンを押し、Admin を起動する。
メニューより Configuration > Protocol modules…
以下の 2 つを有効にする。
- MercuryS SMTP server
- MercuryC SMTP relaying clinent
SMTP server
- メニューより、Configuration > Mercury SMTP Server
Connection control タブにおいて、 Do not permit SMTP relaying of non-local mail のチェックをはずす。
SMTP Client
- メニューより、Configuration > SMTP Client
- Smart host name, Connection port/type には、上記でメモした ISP で指定されている メールサーバ と ポート番号を入力。
- Credentials for SMTP Authentication, if required に、ISP から渡されたメールサーバにアクセスするためのユーザ名とパスワードを入力。
これによりメールの送信が行えるようになった。
終了してない SMTP サーバのプロセスを確認
ところで、いくつか SMTP サーバを試していたら、プロセスが正常に終了してないものがあった。これにより、SMTP サーバの起動時にエラーとなることがある。
「他のプログラムに80番ポートが専有されてApacheが起動できない場合の対処方法 - 床のトルストイ、ゲイとするとのこと」によると、
netstat -oan
これで、ポートを開いているプロセスの一覧が表示される。(-oはPIDの表示、-aは全ての接続を表示、-nはアドレス・ポートを数値で表示)
ここで、80番を使用しているプロセスのPIDを覚えておき、タスクマネージャでそのPIDに対応するプログラム名を調べる。
タスクマネージャのプロセスタブでPIDを出すには、「表示 > 列の選択」でPIDをチェック。PID順にソートすると見つけやすくなる。
上記の説明にある「80番」を「25番」と読み替えて対処する。
参考サイト
- XAMPP環境で外部のメールアドレスへメール送信する設定メモ – JunkVOX
- XAMPP:Mercuryからメール送信の設定 < ホームページ作成・WEB制作・CMSカスタマイズ・ツール作成ならtiny-p
- XAMPPでメール送信 radish? Mercury? | Tech Blog Hibachiya
- WindowsXPとXAMPPのMercuryでmb_send_mailメール送信できない | QUALL - blog
![CropperCapture[190] CropperCapture[190]](http://lh5.ggpht.com/-RKrA3__z6zQ/TebwegBUdgI/AAAAAAAAA5Q/Xt_9wqA1axw/CropperCapture1907.png?imgmax=800)
![CropperCapture[191] CropperCapture[191]](http://lh6.ggpht.com/-xAA4Z-gMfo8/TebwfO1nr5I/AAAAAAAAA5U/Kkp4wmATukw/CropperCapture1917.png?imgmax=800)
![CropperCapture[192] CropperCapture[192]](http://lh4.ggpht.com/-_QCZ7gtu8qM/TebwfpLXVKI/AAAAAAAAA5Y/2FLsib8ORiQ/CropperCapture1925.png?imgmax=800)
![CropperCapture[194] CropperCapture[194]](http://lh3.ggpht.com/-Fiiv6a4qX0w/TebwgDCQnUI/AAAAAAAAA5c/0kynZhvg4fM/CropperCapture1944.png?imgmax=800)
![CropperCapture[197] CropperCapture[197]](http://lh3.ggpht.com/-sCcF-n126ck/Tebwg7VtJ5I/AAAAAAAAA5g/SLJY64MfWmI/CropperCapture1974.png?imgmax=800)
![CropperCapture[195] CropperCapture[195]](http://lh5.ggpht.com/-kNaIonIZAl8/TebwhZfRF6I/AAAAAAAAA5k/5L_PZy7kYAM/CropperCapture1954.png?imgmax=800)
![CropperCapture[196] CropperCapture[196]](http://lh6.ggpht.com/-SStaMwuFVhQ/Tebwho_Z3KI/AAAAAAAAA5o/sAbppPUhyEg/CropperCapture1964.png?imgmax=800)
2コメント:
皆様、こんにちは。
今頃ですが、OP25Bの対応で、この投稿を見させていただき、私もメール送信できるようになりました。
BlackJumboDocを使用させていただいております。
そこで、解れば!で結構ですが、複数の人間で使用する場合、BJDのホスト設定で複数の人分登録し、
中継も、例えば、192.168.12.*で入力しました。
そうすると、メールは送れなくなってしまいました。
単一の登録ではOKでしたが、何故かわかりません。
あまりネットワーク等詳しくなく、申し訳ありませんが、ご教授いただけましたら幸甚です。
すみません。よろしくお願いします。
田中
すみません。
自レスです。
BCJ関係のサイトを参照に解決しました。
お騒がせしました。
ありがとうございました。
田中
コメントを投稿