ホームページ作成初心者です。ホームページビルダーを使っています。
sendmailがうまくいきません。
CGIの設定
・$mailprog = '/usr/sbin/sendmail';
・$mailto = '自分のアドレス';
をして、CGI権限設定も行いました。
WEBは下記の通り記載しています。
<form action="anketo.cgi" method="POST"><INPUT type="hidden" name="to"自分のアドレス">
WEBで動かすと、「送信完了しました」の画面が表示されるのですが、
実際は、メールは届いていません。
なにが原因なのでしょうか。
NIFTYのプランもスタンダードプランです。
どこを調べたらよいかもわからず(logとかがどこかに出ているのでしょうか??)、困っております。
お助けください。
No.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 を入れてください。
ついにできました!!
ばっちりメール送信されて、入力内容もすべてメールに含まれていました!!
このあと入力チェックなどのロジックもいれないといけないのですが
ひとまず、ここまでたどり着けて、すごくうれしいです。
このたびは本当にありがとうございました。
これからもっと勉強してゆきたいと思います。
No.5
- 回答日時:
連投失礼。
ちょっと見落としがありました。回答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 ←私がつけた件名です
-----------------------------------------------
() 名前
No.4
- 回答日時:
回答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;
---ここまで---
とでも変えてみて下さい。
No.3
- 回答日時:
その「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";
No.2
- 回答日時:
補足に書かれたURLのページ内に、以下の文章がありますがその点はちゃんとされてますか?
※ メールヘッダー部分には、送信者(ご利用のお客様)のメールアドレスを必ず記入してください。
スパム対策で、Fromを確認して異なるFromが書かれたメールは送信できないような設定となっている可能性はあり得ます。
No.1
- 回答日時:
> ・$mailprog = '/usr/sbin/sendmail';
ディレクトリの構成は、これで間違いありませんか?
※たぶん、標準値を設定されているようですが、実際の環境も
このとおりですか?
この回答への補足
ありがとうございます。
NIFTYに載っていた設定値をそのまま記載したのみです。
http://faq.nifty.com/nft5795/web2210/faq/detail. …
実際にディレクトリをつくる必要があるのでしょうか??
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックスでのor検索
-
Excel の VBA で、IEのWeb操作
-
wordの数式について 定積分を書...
-
Lightboxの表示位置に関して質...
-
チェックボックスとセレクトボ...
-
INPUT TYPE
-
VB初心者。小数点以下の表示で...
-
チェックボックスの返す値
-
ブックマークからのアクセスを...
-
このメールフォームが機能しな...
-
フォームで絞込み検索機能を持...
-
select値をhiddenのvalueに渡し...
-
フォームよりCGIへ複数の値をPO...
-
PHPの画像掲示板で一部の携帯電...
-
Error: No Recipient というエ...
-
VB.net データーグリッドビュー...
-
FORMを中央に表示したい
-
CGIのforeach文
-
リストボックス(multipleなsel...
-
選択したファイル名を取得する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
tracert ができない原因
-
Perlでuse socketを使用してフ...
-
【CGI】画像の表示の仕方【Mini...
-
c言語 構造体
-
チェックボックスでのor検索
-
ダウンロードをした人の一覧を...
-
日本語文字化け(GETメソッド?)
-
C フォームから受け取った知を...
-
【再】Cookieを使用してフォー...
-
DataGridViewの行取得
-
yoyaku.cgi の改造
-
sendmailのメール送信ができま...
-
CGIでCookie取得
-
perlで書いたcgiでsqliteの使い...
-
【ASP.NET MVC】フォームヘルパ...
-
name[3] = seq + '0';の意味
-
ラジオボタン、チェックボック...
-
CGIで合計を書き出す方法
-
入力フォームに全角・半角スペ...
-
ファイル名変更プログラム
おすすめ情報