- PR -

PHPでメール送信で「?」の文字化け

投稿者投稿内容
こだま
会議室デビュー日: 2004/05/01
投稿数: 2
投稿日時: 2004-05-01 23:07
便乗質問で申し訳ありません。

丁度SMTPの方法を模索していたもので、掲載されてるサンプルで
接続を試みてみました。

結果、エラーもなく順調に行ったように見えるのですが、
実際のメールは送信されて来ません。
(この際の、SMTPサーバ、メールアドレスなどは正しいものです)

これはどういうことなのか、何かヒントを頂けたら光栄です。

同じくレンタルサーバを利用しておりまして、mail()がローカルドメイン内しか
動作しないものですから、別の方法を探しています。
sendmail も試しましたが、なぜか外に送信すると、到着まで5時間くらい
かかってしまうのです。それも来たり来なかったりです。

何でも結構ですので、アドバイス頂けたら光栄です。

------------------------------------------------
追加です。
きちんと応答コードを取ってみました。

DATA コマンドを送信したところで、
553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)
というエラーが帰って来ていました。

つまりは、どうしても外には発信できない設定になっているということですね。
この設定は絶対にいじれないのだそうですから、どうにもならないかも知れません。

素人考えで申し訳ありませんが、普通にメールソフトを使えば、
このサーバはどこにでも送信できるのに、どうしてPHPからのソケットでは
できないのでしょうか。

メールソフトが行っているのと同じようにSMTPとやりとりする方法を
ご存知でしたら、どうかよろしく御願いします。

[ メッセージ編集済み 編集者: こだま 編集日時 2004-05-02 00:41 ]
はゆる
ぬし
会議室デビュー日: 2004/02/16
投稿数: 1008
お住まい・勤務地: 首都圏をウロウロと
投稿日時: 2004-05-02 03:50
こんばんは〜。

こだま さん>
ん〜? DATA コマンドではなくて、RCPT TO コマンドを発行した結果ではじかれたのではないでしょうか?
# 送信先よりも 「アンタなんか知らないわ!」 と SMTP サーバに怒られている気が…。
# PHP スクリプトを置いているサーバと SMTP サーバは別なのでしょうか。

ちなみに、メールを送信する際に、POP before SMTP や SMTP AUTH を使うように、レンタルサーバ会社さんからアナウンスされていませんか?

mail() 関数がローカルドメイン内しか動作しないとおっしゃっているので、まずはそこから当たった方がよい気がします。
PHP についてはよく存じませんが、個人的にはソケットを直接操作する方法はあまりオススメしません。
# SMTP の ”お作法” を知っていなければならないからです。
レンタルサーバ会社さんにサポセン BBS があるようでしたら、そちらの方が適切な回答をもらえるかもしれませんね。

[ メッセージ編集済み 編集者: はゆる 編集日時 2004-05-02 04:12 ]
こだま
会議室デビュー日: 2004/05/01
投稿数: 2
投稿日時: 2004-05-02 15:18
はゆるさん、コメントありがとうございます。


>ん〜? DATA コマンドではなくて、RCPT TO コマンドを発行した結果ではじかれたのではないでしょうか?

すみません。fgets するタイミングが早すぎて、1つ前の応答コードを取っていました。
3秒スリープした結果、RCP へのコードでした。

># 送信先よりも 「アンタなんか知らないわ!」 と SMTP サーバに怒られている気が…。
># PHP スクリプトを置いているサーバと SMTP サーバは別なのでしょうか。

認証は、うまく行っていて、自ドメインではなく外にメールしようとすると、
文句言われちゃうんですね・・。で、サーバが別かどうかは、公開されていなくて
わからないんです。telnetも禁止です。IPから言うと、同じだと思うのですが。

>ちなみに、メールを送信する際に、POP before SMTP や SMTP AUTH を使うように、レンタ>ルサーバ会社さんからアナウンスされていませんか?

もう一度、ホスティング会社にライブチャットで問い合わせ(殆どクレームですが)しました。
最近のバルクメールをブロックするため、一切スクリプトでは外に送れないように
最近設定した・・との返答で、何をやっても駄目なのだそうです。

アメリカの会社ですから、その辺りは融通が効かないと思っていたのですが、
何度も何度もクレームしていたら、スクリプト上で、5分間に75通以内と
制限できるなら、やらせてもいいと、たった今返答をもらいました。
言ってみるもんですね・・。

ちなみにこのメールは、ショッピングカート用の自動返信メールなのです。
この機能がない、ショッピングカートなんて駄目ですよね。
最悪、別サーバを用意して、フォワードさせようかと思っていました・・

丁寧なコメント本当にどうもありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)