さくらインターネットのサーバで空メール送信する方法を教えて下さい。


例:
受け取るメールアドレス:aaa@test.jp
メール送信を実行するプログラム:test.php

以下のページを参考に
http://faq.sakura.ne.jp/wiki/wiki.cgi?%A5%E1%A1%BC%A5%EB#i29

/home/(ユーザ名)/MailBox/aaa/にある.mailfilterに
to "| /home/(ユーザ名)/www/test.php"

と記述しました。
そして、aaa@test.jpに空メールを送信したのですが、反応がありません。

メール送信用のtest.phpに直接アクセスすると、返信メールが届くので、メール送信用プログラムに問題はないかと思います。

もし、ご存じの方は教えていただければと思います。

回答の条件
  • 1人2回まで
  • 登録:2007/05/17 18:39:23
  • 終了:2007/05/24 18:40:03

回答(4件)

id:sera_yr No.1

sera_yr回答回数123ベストアンサー獲得回数62007/05/17 18:58:19

ポイント23pt

http://q.hatena.ne.jp/1167279986

過去にも同じ質問があるようです。上記URLの例では、.mailfilterのパーミッションを600にすることで解決したようですがいかがでしょうか

id:kt26

回答ありがとうございます。

ただ、パーミッションを設定し、送信はされるのですが、エラーメールとして戻ってきます。

エラーメール内には以下のようなメッセージがあります。しかし、どうやっても解決出来ません‥。


/home/(ユーザ名)/www/test.php: not found

554 5.3.0 unknown mailer error 127

2007/05/17 20:55:46
id:gekikawa No.2

gekikawa回答回数110ベストアンサー獲得回数112007/05/17 20:09:07

ポイント23pt

>aaa@test.jpに空メールを送信したのですが、反応がありません。

全く何もないですか?

例えば、目的のスクリプトに転送されていない(転送先が見つからない)

とかスクリプトのパーミッションがまずい(700必要)とかあると

デーモンから空メを送ったアドレスに返信がきたような記憶があります。

デーモンからの返信がなければ、もしかしたらメール送信までは出来ているのかも?

返信プログラムにログを記録するようにしてチェックするのはどうでしょうか?


あとtest.phpの1行目には「#!/usr/local/bin/php」、改行コードはLFあたりをチェックしてみて下さい。

id:kt26

test.phpは

#!/usr/bin/php -q

$from="送信するメールアドレス";

$body="aaa";

//メール返信

mb_internal_encoding("utf-8");

mb_language("japanese");

mb_send_mail($from, "empty_mail", $body, "From: aaa@test.jp");

?>

と書いています。実行すると指定していたメールアドレスにメールが送信されるイメージです。

また、一行目を#!/usr/local/bin/phpにすると

Error in argument 1, char 3: option not found

というメッセージが表示されたので、上記のようにしています。

2007/05/17 20:59:02
id:gekikawa No.3

gekikawa回答回数110ベストアンサー獲得回数112007/05/17 22:42:34

ポイント22pt

コメントが書けないのでこちらから失礼します。

>/home/(ユーザ名)/www/test.php: not found

>554 5.3.0 unknown mailer error 127

というのは転送先が見つからないということでしょう。

test.phpのアップロード先がwww直下になっているか確認して下さい。

もしくは.mailfilterに記述したpathがスペルミスとか、変なスペースが入っているとか...

>また、一行目を#!/usr/local/bin/phpにすると...

私のところではoptionなしで実行できているんですが...

でも#!/usr/bin/php -qでも問題はないはずですね。


telnetでサーバーにアクセスしてコマンドラインから

/home/(ユーザ名)/www/test.php

とやってみてはどうでしょうか?万が一pathの誤りがあれば

エラーでしょうし、合っていれば実行されると思います。

(合っているときは...何が原因でしょう?)

id:kt26

返信が遅れてすみません。telnetでサーバにアクセスしてコマンドラインから実行すると、指定したメールアドレスにメールが送信されました。つまり、合っていると思われます。

2007/05/19 12:16:45
id:sera_yr No.4

sera_yr回答回数123ベストアンサー獲得回数62007/05/18 15:50:13

ポイント22pt

スクリプトが見つからないというエラーがでているようですね。

echo $_SERVER['SCRIPT_FILENAME'];でスクリプトの絶対パスを表示し、.mailfilterのパス(/home/(ユーザ名)/www/test.php)が合っているか確認してみてはいかがでしょうか。

id:kt26

これに関しては問題ありませんでした。

2007/05/19 12:21:14
  • id:gekikawa
    不思議で仕方がないので、実際に私ももう一度試しました。(さくら共有サーバーです)

    その結果はtest.phpの一行目が
    #!/usr/bin/php -q
    のときはnot foundで同じエラー

    #!/usr/local/bin/php
    に直してupしてみると、正しく動作しましたよ。

    test.phpの改行コードをCR+LFにしたり、1行目の最後にスペース入れたり
    やってみましたが、残念ながら同じエラー(Error in argument 1, char 3: option not found)
    は作れませんでした。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません