記事の最後へ▼ 
< 質 問 >
sendmail.exeを用いたメール送信について

PHPプログラムよりsendmail.exeを利用し、メールを送信するシステムの導入を検討しているのですが、メールの送信が出来ません。
送信先のメールサーバーは簡単に言うと一般のプロバイダーです。

宜しくお願いします。

HATA (11.22/06)


【 通りすがり (11.22/06) 】

送信できないという話だけなので、
原因は判りませんが、
php.iniファイルのsendmailへの設定が間違っているのではないでしょうか。
また、PHPは、あまり詳しくありませんが、sendmailを使わなくてもメールの送信ができるはずですので、そちらで送信してみてはどうですか。
# 詳しいプログラム方法は他の解説サイトの方が良いと思います。

P.S.
プロバイダに送信できないのは、プロバイダ側が制限しているからだと思いますから、プロバイダのホームページをOutbound Port25 Blocking等で検索してみると良いと思います。


【 HATA (11.22/06) 】

コメントありがとうございます。
PHPのプログラムは出来合いのパッケージでいじれないので、後はXMAILの設定によるものか、プロバイダーの制限によるものかに絞っています。プロバイダーのSMTPの制限は送信先のfromが不正でなければよく、その他の制限は無いようなんです。

sendmailでの送信の場合、smtprelay.tabなどの設定は必要なのでしょうか。


【 通りすがり (11.22/06) 】

では、XMailのSMTPログを見た方が良いでしょう。
もし、XMailの設定に問題があるなら、SMTPログの中に原因が書かれていると思います。
また、SMTPのログが無いようなら、前述の通り、php.iniの設定の可能性があります。

P.S.
その他は、PHPのプログラム内容が判らない以上、パッケージ開発元に問い合わせてみるしかないのではと思います。


【 TTT (11.23/06) 】

http://www.xmailserver.jp/documentation/xmail/misc.html#sendmail
には、
「この sendmail はローカルの XMail に対してしかメッセージを送信できません」とあります。
この辺は関係ないでしょうか?

私は、XMail導入前に「sendまね〜る」というソフトを入れていたので、ずっとこちらを使っています。
何も問題なく使っています。


【 HATA (11.23/06) 】

御2方ありがとうございます。
ローカルの XMail の件をパーケージ開発元に問い合わせて見ます。

出来ないなら出来ないで、少し前進したように思います。


【 富田 (11.23/06) 】

あて先の指定を <foo@domain.jp> みたいに <> でくくっているでしょうか?


【 HATA (11.24/06) 】

富田さまこんにちは。
送信元は、
HATA太郎 <foo@domain.jp>
foo@domain.jp
両方とも選択?でき、
宛先は、
foo@domain.jp
で<>なしで送信しています。


【 Ryou (11.24/06) 】

このトラブル、私も遭遇して悩んだことがあります。

Davide 氏はRFC準拠を非常に重視している方です。
「<>」無しではRFC2821の「3.3 Mail Transactions」の仕様
を満たしていませんのでそれが原因でしょう。
http://www.csl.sony.co.jp/cgi-bin/hyperrfc?rfc2821.txt
http://www.puni.net/~mimori/rfc/rfc2821a.txt

「501Message=Syntax error in parameters or arguments: (-31)」
がメールサーバからの返答として帰ってくるはずです。

解決法としてはメールアドレスは「<>」でくくるように
プログラムを修正するしかないでしょう。

以下、「XMail 1.22 SSL Ext 0.0.3a」での以前のテスト結果です。
(※)←当方で投入したコマンド
**************【xmailへの正常なコマンド発行】******************
TELNET 192.168.0.1 25 (※)
220 <1138953327.3344@mail.xxx.yyy.co.jp> [XMail 1.22 SSL Ext 0.0.3a
ESMTP Server] service ready; Fri, 24 Nov 2006 12:55:27 +0900
EHLO xxx.yyy.co.jp (※)
250-xxx.yyy.co.jp
250-VRFY
250-ETRN
250-8BITMIME
250-PIPELINING
250-AUTH LOGIN PLAIN CRAM-MD5
250-SIZE
250 STARTTLS
RSET (※)
250 OK
MAIL FROM:"TEST"<foo_bar_foo@xxx.yyy.co.jp> (※)
250 OK
RCPT TO:"TEST"<foo_bar_foo@xxx.yyy.co.jp> (※)
250 OK
quit (※)
221 [XMail 1.22 SSL Ext 0.0.3a ESMTP Server] service closing transmission
channel
********************************

**************【xmailがエラーを返す場合】******************

TELNET 192.168.0.1 25 (※)
220 <1138953390.6148@mail.xxx.yyy.co.jp> [XMail 1.22 SSL Ext 0.0.3a
ESMTP Server] service ready; Fri, 24 Nov 2006 16:56:30 +0900
EHLO xxx.yyy.co.jp (※)
250-xxx.yyy.co.jp
250-VRFY
250-ETRN
250-8BITMIME
250-PIPELINING
250-AUTH LOGIN PLAIN CRAM-MD5
250-SIZE
250 STARTTLS
RSET (※)
250 OK
MAIL FROM:<foo_bar_foo@xxx.yyy.co.jp> (※)
250 OK
RCPT TO:foo_bar_foo@xxx.yyy.co.jp (※)
501 Syntax error in parameters or arguments: (-31)
quit (※)
221 [XMail 1.22 SSL Ext 0.0.3a ESMTP Server] service closing transmission
channel
********************************


【 HATA (11.27/06) 】

Ryouさんその他皆さんアドバイスありがとうございます。
皆さんのアドバイスでなんとなく見えてきました。
Sendmail自体の機能でPINGの通らないドメイン名へのメール送信が出来ないような気がしてきました(想定)。!名前が解決しない!
現状ではまだメール送信できないのですが、解決したときはまたコメントします。


【 HATA (11.28/06) 】

皆さんありがとうございました。
PHPプログラム側での<>の挿入により送信が可能となりました。ほんとにありがとうございました。

記事の先頭へ▲ 
SUPER LABORATORY