まとめ。
…の、つもり。きっとまとまらない。
PHPからsendmail経由でメールを送信する。
ごく普通の話。
で、拒否られた。送信できない~♪
サーバ曰く、
メール送信元が存在しないぞゴルァ
で、Reply-toヘッダも存在確認されてるみてぇだ。と判明。
mail関数の第4引数の追加ヘッダに追加。
わー胃、遅れた。
と思ったら、別の環境では、送れない(;_;)
サーバから送り返される文句メールを読む。
件名「Returned mail: see transcript for details」
subject "返されたメール: 詳細のための転写を見てください。"
読む。
MAIL From:<apache@(ホスト名).(ドメイン)> SIZE=1312
Fromヘッダは当然設定したぞーっ。なんでこんなデフォルト値っぽいのが入ってんだぁ(涙
ここで、オイラの中の神降臨。「エンベロープ」というワードが浮かぶ。
早速グーグル先生に相談だ。
PHPでメールを送信する時にReturn-Pathヘッダーを設定する方法(envelope-fromを設定する方法) - 菊池高志 - builder by ZDNet Japan
1. mail()を使う場合
五番目の引数にsendmailのオプション"-f"を渡す。
mail($to, $subject, $body, $additionalheaders, "-f" . $returnpath);
5番目~???
マニュアル読んだけど、そんなものあったけ?
確認する。
あるやん。
オイラ、ちゃんと読めよ。
というわけで、第5引数にfオプションを付けたところ、どうやらうまくいったみたい。
送信先のヒトが帰ったので、今日は確認できないが、
成功ログが残ってたから、成功してるはず。
失敗してたら…この記事はどうすればいいんだ?
いや、オイラの人生どうなるんだ?
もうこれ以上この件に関わりたくないよー(涙涙涙
改めて、サーバ管理者としてのスキルは無いことを痛感。
プログラマにサーバ管理者なんてやらせるものじゃないよー。
解決できてしまったオイラは、スーパープログラマーだ。
いや、スーパーハカーだ。神をも超越した存在だ…orz...
しかし、エンベロープの存在確認すらしないのがメールサーバーの主流だったんだから、
迷惑メールも流れ放題にもなるわな。。
そしてセキュリティがきつくなり、プログラマたちは苦労させられる。
悪人は全て死滅すればいいのに。
そうすればオイラも滅するわけだから、何もしなくて良くなるわけだ。
こりゃ楽だ~。hahahahaha!!!
お星様にお願いしてみようっと。
PHP mail sendmail
Comments