Successfully reported this slideshow.
Your SlideShare is downloading. ×

Apache James - local mail server

Ad

@default.local  で メールしほーだい! 2010/07/16 Nichicom-LT - Tozo TANAKA 今日は法律トーク無しよ☆

Ad

やりたいこと <ul><li>メール送信ありの web サービスを、ローカルの開発環境 (Windows) で動かす </li></ul><ul><li>大量のテストメールを送信するけど SPAM 扱いされたくない </li></ul><ul>...

Ad

結論 <ul><li>Hosts ファイルいじる </li></ul><ul><li>Apache James 使う </li></ul><ul><li>以上 </li></ul>

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
PIC RoR Heroku
PIC RoR Heroku
Loading in …3
×

Check these out next

1 of 8 Ad
1 of 8 Ad
Advertisement

More Related Content

Advertisement
Advertisement

Apache James - local mail server

  1. 1. @default.local で メールしほーだい! 2010/07/16 Nichicom-LT - Tozo TANAKA 今日は法律トーク無しよ☆
  2. 2. やりたいこと <ul><li>メール送信ありの web サービスを、ローカルの開発環境 (Windows) で動かす </li></ul><ul><li>大量のテストメールを送信するけど SPAM 扱いされたくない </li></ul><ul><li>メアドもたくさん欲しい </li></ul>
  3. 3. 結論 <ul><li>Hosts ファイルいじる </li></ul><ul><li>Apache James 使う </li></ul><ul><li>以上 </li></ul>
  4. 4. 1. メアド決める (1) <ul><li>@ 以降がサーバのアドレス ( ドメイン ) ->@sohga.jp = sohga.jp というメールサーバ宛 </li></ul><ul><li>ローカル環境とて PC 。アドレスはある。 -> 127.0.0.1 </li></ul><ul><li>ホントは全部 IP 。でも覚えづらいからドメインというエイリアスを認めている。 -> 127.0.0.1 = localhost </li></ul><ul><li>要するにみんな @localhost を持っている </li></ul>
  5. 5. 1. メアド決める (2) <ul><li>@localhost だとメアドとして拒否られる場合 -> @sohga.jp みたくドメインには ” .” 含むでしょ的な拒否 </li></ul><ul><li>localhost = 127.0.0.1 を default.local = 127.0.0.1 に変えれば OK ->IP の読替は hosts ファイルにある   C:indowsystem32riverstcosts   #127.0.0.1 localhost   127.0.0.1 default.local </li></ul>
  6. 6. 2. メルサバ立てる (1) <ul><li>Apache James http://james.apache.org/ </li></ul><ul><li>Java で動く J ava  A pache  M ail  E nterprise  S erver </li></ul><ul><li>Apache Tomcat の電子メール版 Servlet ならぬ Mailet で機能拡張可能 </li></ul>※ 細かい設定はノートに記載していますので、   興味のある方は表示モードを変更してご覧ください。
  7. 7. 2. メルサバ立てる (2) <ul><li>Download して 解凍、 bin/run.bat 実行 </li></ul><ul><li>telnet で port:4555 に接続してユーザ追加 </li></ul><ul><li>James の設定変更 /apps/james/SAR-INF/config.xml servername : localhost->default.local local-address-error を削って存在しないメアドも許可 RemoteDelivery を削ってリモート ( 外部 ) 送信を抑制 All Forward を追加して全メールを指定メアドに転送 </li></ul>
  8. 8. まとめ <ul><li>メールサーバはすぐつくれる。 </li></ul><ul><li>メールサーバはローカルにもつくれる。 </li></ul><ul><li>サーバ管理者がやってることを少し自分でもできるようになるとカッコイイ。 </li></ul>Let's D.I.Y!

Editor's Notes

  • hosts を変更した段階で、 http://default.local/ は http://127.0.0.1/ へのアクセスと認識します。
  • 【 telnet 関連】 ・ Win7/Vista で telnet が立ち上がらないときは、 [ コントロールパネル ] - [ プログラムと機能 ] – [Windows の機能の有効化または無効化 ] から「 Telnet クライアント」をインストール。 http://blog.heiichi.com/?eid=486815 ・ telnet で James にユーザ追加するコマンド C:\\&gt; telnet localhost 4555 JAMES Remote Administration Tool 2.2.0 Please enter your login and password // 初期設定では ID,PW ともに root Login id: root Password: root Welcome root. HELP for a list of commands help Currently implemented commands //id=test1 、 password=test でユーザを作成する add user test1 test // 終了 quit
  • 【 James 設定】 hosts ファイルに設定したホスト名を servername に設定。 &lt;servername&gt;localhost&lt;/servername&gt; ↓ &lt;servername&gt;default.local&lt;/servername&gt; 存在しないユーザ名でもエラーにしないよう、以下を削除。 &lt;mailet match=&amp;quot;HostIsLocal&amp;quot; class=&amp;quot;ToProcessor&amp;quot;&gt; &lt;processor&gt; local-address-error &lt;/processor&gt; &lt;notice&gt;550 - Requested action not taken: no such user here&lt;/notice&gt; &lt;/mailet&gt; リモートに送信しないよう、以下を削除。 &lt;mailet match=&amp;quot;All&amp;quot; class=&amp;quot;RemoteDelivery&amp;quot;&gt; &lt;outgoing&gt; file://var/mail/outgoing/ &lt;/outgoing&gt; &lt;!-- alternative database repository example below --&gt; : ( 略 ) : &lt;/mailet&gt; 同じ位置に、以下を追加。 &lt;mailet match=&amp;quot;All&amp;quot; class=&amp;quot;Forward&amp;quot;&gt; &lt;forwardTo&gt;test1@default.local&lt;/forwardTo&gt; &lt;/mailet&gt; これで存在しないローカルアドレスと、全リモートアドレスが test1@default.local にフォワードされます。 Control-C で James を止めて、 run.bat で再度起動。
  • 【その他】 Apache なら php.ini の設定 [mail function] ; For Win32 only. SMTP = 127.0.0.1 smtp_port = 25 sendmail_from = test1@default.local ・ CodeIgniter でメール送るスクリプト function index() { $this-&gt;load-&gt;library(&apos;email&apos;); $this-&gt;email-&gt;from(‘test1@default.local&apos;, &apos;Tozo TANAKA&apos;); $this-&gt;email-&gt;to(‘atesaki@default.local&apos;); $this-&gt;email-&gt;subject(&apos;Email Test&apos;); $this-&gt;email-&gt;message(&apos;Testing the email class.&apos;); $this-&gt;email-&gt;send(); echo $this-&gt;email-&gt;print_debugger(); }

×