【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

ホームページ作成初心者です。ホームページビルダーを使っています。
sendmailがうまくいきません。
CGIの設定
  ・$mailprog = '/usr/sbin/sendmail';
  ・$mailto = '自分のアドレス';
をして、CGI権限設定も行いました。
WEBは下記の通り記載しています。
   <form action="anketo.cgi" method="POST"><INPUT type="hidden" name="to"自分のアドレス">

WEBで動かすと、「送信完了しました」の画面が表示されるのですが、
実際は、メールは届いていません。

なにが原因なのでしょうか。
NIFTYのプランもスタンダードプランです。
どこを調べたらよいかもわからず(logとかがどこかに出ているのでしょうか??)、困っております。
お助けください。

A 回答 (6件)

> 「名前」しかメールに記載されていない状態です。


html を見たところ、タグに名前がついていません。

フォームの入力部分、3つの項目について
(略)
<INPUT type="text" name="" size="30" value="">
(略)
<INPUT type="text" name="" size="30" value="">
(略)
<TEXTAREA name="" rows="6" cols="73"></TEXTAREA>
(略)
とった表記がありますが、どれも name が空のままです。

<INPUT type="text" name="email" size="30" value="">
(略)
<INPUT type="text" name="name" size="30" value="">
(略)
<TEXTAREA name="message" rows="6" cols="73"></TEXTAREA>

といった感じで、name を入れてください。
    • good
    • 0
この回答へのお礼

ついにできました!!
ばっちりメール送信されて、入力内容もすべてメールに含まれていました!!

このあと入力チェックなどのロジックもいれないといけないのですが
ひとまず、ここまでたどり着けて、すごくうれしいです。

このたびは本当にありがとうございました。
これからもっと勉強してゆきたいと思います。

お礼日時:2010/03/15 22:29

連投失礼。

ちょっと見落としがありました。
回答2の問題があるので、メールヘッダの From: は、@nifty のメールアドレスを入れる必要があるかと思います。

---ここから---
open(MAIL,"| $mailprog $mailto")|| die "Can't open $mailprog!\n";
print MAIL "From: ○○○@nifty.com\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: anketo.cgi\n";
print MAIL "\n";
print MAIL $mail_msg;
---ここまで---

といった感じで。From: のメールアドレスは質問者さんの@niftyのアドレスを入れて下さい。
あと、Subject: の行は件名ですので、適当に書き換えて構いません。ただし、日本語は不可です。

この回答への補足

ありがとうございます!メール受信できるようになりました!
ただ…
http://chutti.jp/contact.html の、
「名前」しかメールに記載されていない状態です。
FIELDの設定?が足りてないと思うのですが…こちらもご教示いただけないでしょうか。
「アドレス」「名前」「お問い合わせ」が受信できるようになれば、と思っております…すいません…

こんなかんじです
inquiry ←私がつけた件名です
-----------------------------------------------
() 名前

補足日時:2010/03/15 18:28
    • good
    • 0

回答3のものです。

補足拝見しました。
その通りのコードなら、必要なメールヘッダを渡す記述がないため、
メール送信は失敗します。
---ここから---
open(MAIL,"| $mailprog $mailto")|| die "Can't open $mailprog!\n";
print MAIL $mail_msg;
---ここまで---
ここの部分を、
---ここから---
open(MAIL,"| $mailprog $mailto")|| die "Can't open $mailprog!\n";
print MAIL "From: $mailto\n";
print MAIL "To: $mailto\n";
print MAIL "Subject: anketo.cgi\n";
print MAIL "\n";
print MAIL $mail_msg;
---ここまで---
とでも変えてみて下さい。
    • good
    • 0

その「anketo.cgi」が、どういうCGIなのか、そのCGI中で、


・/usr/sbin/sendmail に、どういう引数を与えて起動しているのか
・sendmail の標準入力には、どういうデータを流し込んでいるのか
を示してください。それがわからないとどこが悪いのか判断のしようがありません。

この回答への補足

書き込みありがとうございます。
sendmailには、「お名前」「メールアドレス」「問い合わせ内容」を
流し込んでいるつもりです。
anketo.cgiは下記のとおりです。
もともとアンケートサイト用CGIサンプルとして用意されていたものを、
問い合わせフォーム用に使おうとしているので引数があわない!?な感じでしょうか。

#------ sendmailパスの指定 ----------------------------------------------
# 以下の、$mailprogに、サーバー上にある"sendmail"コマンドをフルパスで
# 記入します。詳しくは、プロバイダのガイドに従ってください。
# (例) $mailprog = '/usr/lib/sendmail';
$mailprog = '/usr/sbin/sendmail';
#------------------------------------------------------------------------
#------ メールアドレスの指定 ------------------------------------------
# 以下の、$mailtoに、アンケートの送り先となるメールアドレスを記入します。
# (例) $mailto = 'mailaddress@sample.ibm.jp';
$mailto = 'chuttindia@gmail.com';
#------------------------------------------------------------------------


require 'jcode.pl';

#Get the input
read (STDIN, $buffer, $ENV{'CONTENT_LENGTH'});

#Split the name-value pairs
@pairs = split (/&/,$buffer);

foreach $pair(@pairs)
{
($name, $value) = split(/=/, $pair);

#Un-Webify plus signs and %-encoding
$value=~tr/+/ /;
$value=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg;

$FORM{$name} = $value;
if ( $name ne "to" ) {
push (@fields, $name) unless (grep(/^$name$/, @fields));
}
}

#
### 送信フォーマット
#

$mail_msg = "";

foreach $field (@fields) {
$mail_msg = "$mail_msg-----------------------------------------------\n";
$mail_msg = "$mail_msg($field) $FORM{$field}\n";
}
$mail_msg = "$mail_msg-----------------------------------------------\n";

#
### ShiftJis to Jis
#
&jcode'convert(*mail_msg, 'jis');
open(MAIL,"| $mailprog $mailto")|| die "Can't open $mailprog!\n";
print MAIL $mail_msg;
close(MAIL);
#
### Make the person feel good for writing to us
#
print "Content-type: text/html\n\n";
print "<HTML><HEAD><TITLE>Thank you!</TITLE></HEAD>\n";
print "<BODY bgcolor=\"#9dffff\">\n";
print "<H2 align=\"center\">お問い合わせありがとうございました!</H2>\n";
print "<HR>\n";
print "<P>\n";
print "24時間以内にこちらからご連絡さしあげます。\n";
print "</BODY></HTML>\n";

補足日時:2010/03/15 12:01
    • good
    • 0

補足に書かれたURLのページ内に、以下の文章がありますがその点はちゃんとされてますか?



※ メールヘッダー部分には、送信者(ご利用のお客様)のメールアドレスを必ず記入してください。

スパム対策で、Fromを確認して異なるFromが書かれたメールは送信できないような設定となっている可能性はあり得ます。
    • good
    • 0

> ・$mailprog = '/usr/sbin/sendmail';



 ディレクトリの構成は、これで間違いありませんか?

 ※たぶん、標準値を設定されているようですが、実際の環境も
 このとおりですか?

この回答への補足

ありがとうございます。
NIFTYに載っていた設定値をそのまま記載したのみです。
http://faq.nifty.com/nft5795/web2210/faq/detail. …

実際にディレクトリをつくる必要があるのでしょうか??

補足日時:2010/03/15 09:33
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報