自宅サーバーでメール送信
このサイトはddo.jpのDDNSを利用して自宅サーバーで運用している。
当方のプロバイダーがOutbound Port 25 Blocking(OP25B)を開始してから、自宅サーバーからのメール送信はできなくなったとあきらめていたが、うにゃ妻が設定の手がかりを発見! 無事設定完了となったので、備忘録を兼ねてここに手法を記載しておく。
当方のプロバイダーがOutbound Port 25 Blocking(OP25B)を開始してから、自宅サーバーからのメール送信はできなくなったとあきらめていたが、うにゃ妻が設定の手がかりを発見! 無事設定完了となったので、備忘録を兼ねてここに手法を記載しておく。
メールサーバー:postfix
まず/etc/postfix/main.cfに以下の行を追加。
transport_maps = hash:/etc/postfix/transport
次に/etc/postfix/transportに以下の行を追加。
自サーバー :
* smtp:[プロバイダーのリレー先メールサーバー]
自サーバー内のメール送信は外部にリレーせず、それ以外はすべてリレー先に転送するという設定。
リレー先メールサーバーは必ず[]で囲うこと。
そして以下のコマンドを実行。
postmap /etc/postfix/transport
このコマンドを実行するとtransport.dbというファイルが作られる。
以降transportファイルに変更を加えたら、このコマンドを必ず実行する。
postfixをリスタート
service postfix restart
以上で、正常に外部とのメール送受信が可能となった。
2008/11/26追記
コメントにあったrelayhostとtransport_mapsの違いを記載する。
SMTP認証を使ってリレーをするなら、relayhostもしくはtransport_mapsに加え、smtp_sasl_auth_enableとsmtp_sasl_password_mapsを使用する。例えばmain.cfには以下のような記述をする。
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_auth_enable = yes
/etc/postfix/saslpassの中にはユーザー名とパスワードを記述する。書式は以下のとおり。
接続先ホスト名 ユーザー名:パスワード
最後に以下のコマンドを実行する。
# postmap /etc/postfix/saslpass
# service postfix restart
まず/etc/postfix/main.cfに以下の行を追加。
transport_maps = hash:/etc/postfix/transport
次に/etc/postfix/transportに以下の行を追加。
自サーバー :
* smtp:[プロバイダーのリレー先メールサーバー]
自サーバー内のメール送信は外部にリレーせず、それ以外はすべてリレー先に転送するという設定。
リレー先メールサーバーは必ず[]で囲うこと。
そして以下のコマンドを実行。
postmap /etc/postfix/transport
このコマンドを実行するとtransport.dbというファイルが作られる。
以降transportファイルに変更を加えたら、このコマンドを必ず実行する。
postfixをリスタート
service postfix restart
以上で、正常に外部とのメール送受信が可能となった。
2008/11/26追記
コメントにあったrelayhostとtransport_mapsの違いを記載する。
- relayhost:すべてのメールをリレー先に転送する。
- transport_maps:ドメインごとにリレー先を変える等、柔軟な設定が可能。ドメインの指定をしなければrelayhostと同じ動きをする。
SMTP認証を使ってリレーをするなら、relayhostもしくはtransport_mapsに加え、smtp_sasl_auth_enableとsmtp_sasl_password_mapsを使用する。例えばmain.cfには以下のような記述をする。
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_auth_enable = yes
/etc/postfix/saslpassの中にはユーザー名とパスワードを記述する。書式は以下のとおり。
接続先ホスト名 ユーザー名:パスワード
最後に以下のコマンドを実行する。
# postmap /etc/postfix/saslpass
# service postfix restart
Comments
>困ったことが今後発生したら相談にのってくださいね。
それほど詳しいわけではありませんが、いつでも声をかけてください。(`・ω・´)シャキーン
同じだと思ってました(笑)
SMTP認証が必要なサーバとpostfixさんで
つなげたことがないので、詳細は???です。
困ったことが今後発生したら相談にのってくださいね。
当方がとった手法はrelayhostとは違うようなのですが、どこがどう違うのかよくわかりません(苦笑)。
ただ、この手法だとSMTP認証を求められませんでした(リレー先のサーバーがSMTP認証必須だと、relayhostでは認証を求められます)。
なのでサーバー間のやりとりが異なるのでしょう。
ちなみに、こちらのプロバイダーはso-netでして、自宅サーバーでメール配信を行う場合は「静的配送」の設定をするよう案内が書いてあったので、ググって調べたのが上記の方法です。
うにゃ主人さんのとられた対策って
main.cfに
relayhost=プロバイダーのリレー先メールサーバー
って、書くのとは効果が違うのでしょうか?
ちなみに私はrelayhostでやっています。
Outbound25 port blockingは私のプロバイダ
hi-hoではまだ導入されてません(ないと思う)が、
されちゃったらメールサーバー立てて遊べなくなっちゃうのかなぁ?とちょっと心配です。