アプリからメールを送る

■大抵550エラーで苦しむ

http://www.f-secure.co.jp/support/html/linux_gw_58018.html

http://www.f-secure.co.jp/support/html/linux_gw_54060.html

自分のメルアドには送れるので余計に混乱する↓
http://okwave.jp/qa1904027.html


今回はNiftyがメールサーバだったので、FSecureの関係になっている。


な〜んて疑っていたら、その前に以下の原因があった。
なんか、社内の設定で、IPをブロックしていた。これでは、HELOドメインとか以前の問題。
ということで、まずNiftyに現在のアプリが乗っているサーバーのIPを許可して貰うようお願い。


これも参考になる。
http://e-words.jp/w/E382AAE383BCE38397E383B3E383AAE383ACE383BC.html

→解決 sendmailを用いる。つまり、ローカルのsendmailを使うのである。


ActionMailer::Base.delivery_method = :sendmail
これだけ。あとは、メール送信のコンポーネントを作成するだけ。


ただ、僕はこの時、これでも送信できなかった。エラーはしないし、ログでも、メール
を送信したことになっている。
原因は、sendmailが起動していなかった(笑)この時下記に助けられる。
ちなみに、送信しても直に来なかった事をエラーと勘違いして手間取った事もあった。

http://hp.vector.co.jp/authors/VA003991/linux/smtp/sendmail.html

ソフトバンクに送れない
mailコマンドで打っても送れない。ログを見たら、DSN Data format errorとか書いて
あった。

これは、アドレスがlocaldomainとかになるため、相手側のサーバーで、ホストがないと
認識され、送れていなかった。ドコモとAuは送れた(笑)


送信ドメインを変えた
/etc/hostsをこのようにかえた


# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
#***.**.***.22 web1.localdomain web1 元の行

.**.***.22 my_domain web1 修正後
.***.*.101 web1.localdomain web1

/etc/init.d/network restart
/etc/init.d/sendmail restart

上手くいった。最初ドメインをとっていない状態でサーバーを借りる際に突き当たる
問題でしょう。