お問い合わせのフォームを作り、確認、最後にメールを飛ばす仕組みを作っているのですが、メールにインプットされたデータが入ってこない状態で届きます。どうか助けてください。(息切れ)
*下記参照
#フォームの情報を初めに格納する所 省略
#-------------------------------↓
if ( $ACT eq 'ckt' ){
&kakunin;
}
elsif ( $ACT eq 'ckt2' ) {
open (KEIJI, "<keijiban.dat") || die "File 'keijiban.dat' Open Error.";
# ファイルの内容を1行単位ですべて配列allに読み込む
@all = <KEIJI>;
# すべてのデータについて繰り返す
foreach (@all){
# 1行の文字列をコロンを目印にして項目に分割する
($firstname) = split(/:/, $_);
# 1件分のデータを表示するサブルーチン
&sendmail;
}
close(KEIJI);
#------------------------------------↑
sub kakunin{
$new_data = "$firstname\n";
&jcode'convert(*new_data, 'sjis');
open(KEIJI, "<keijiban.dat") || die "File 'keijiban.dat' Open Error.";
# 過去のデータを全て配列に読み込む
@all_data = <KEIJI>;
close(KEIJI);
# 配列の先頭に新規データを追加
unshift(@all_data, $new_data);
open(KEIJI, ">keijiban.dat") || die "File 'keijiban.dat' Open Error.";
#flock(KEIJI, 2);
# (新規データ+過去データ)をファイルに上書き
print KEIJI @all_data;
#flock(KEIJI, 8);
close(KEIJI);
# 書きこみ完了メッセージ
&write_ok;
exit;
}
sub sendmail {
#以下省略メール送信プログラム
exit;
}
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
外していたらごめんなさい。
(^_^;ReadParse(*in);以下の処理
↓
ReadParse;
while(($k,$v) = each %in)
{
&jcode'convert(*v,"sjis");
$in{$k} = $v;
}
#フォームの情報を初めに格納する所
$ACT = "$in{'ACT'}";
$name = 'お問合せ';
$from = "$in{'from'}";
$subject = 'お問合せ';
$body = 'お問合せ';
#●オリジナル挿入開始
$firstname = "$in{'firstname'}";
$to = 'love-0720@nifty.com';
としてみて下さい。
尚、念のためsendmailの
print MAIL "TO: $to\n"; も
↓
print MAIL "To: $to\n";
にしておいて下さい。
また、print MAIL "Content-Type: text/plain;\n\n"; の前に
print OUT "Content-Transfer-Encoding: 7bit\n";
があった方が良いかもしれません。
お試し下さい。
#本当はopen(MAIL, "| /usr/lib/sendmail -t"); にもエラー処理があった方が良い様な気がしますが・・・。
No.1
- 回答日時:
とりあえず質問内容と記載されているソース部分が合致していない気がします。
まずはフォームの値読み出し(ReadParse)から加工と、実際のメール送信部分を記載された方が良いですよ。(^_^)
この回答への補足
サブルーチン全部のソースを下記に示しました。
全体的な動きは最初に書いたとおりになっています。
ちなみに一時データ格納場所は*.dataファイルに格納することになっています。
●補足1
&ReadParse(*in);
#フォームの情報を初めに格納する所
$ACT = "$in{'ACT'}";
$name = 'お問合せ';
$from = "$in{'from'}";
$subject = 'お問合せ';
$body = 'お問合せ';
#●オリジナル挿入開始
$firstname = "$in{'firstname'}";
$to = 'love-0720@nifty.com';
●補足2
sub sendmail {
#送信前処理
&jcode'convert(*subject,'jis');
&jcode'convert(*body,'jis');
# send mail
open(MAIL, "| /usr/lib/sendmail -t");
print MAIL "TO: $to\n";
print MAIL "From: $from\n";
print MAIL "Subject: $subject\n";
print MAIL "Content-Type: text/plain;\n\n";
print MAIL "\n";
print MAIL "---------------------------------------------\n";
print MAIL " 名前:$name\n";
print MAIL " 内容:$body\n";
print MAIL " お名前:$firstname $secondname\n";
print MAIL " かな:$kanafirstname $kanasecondname\n";
print MAIL " 所在都道府県 :$area1 $area2\n";
print MAIL " 電話番号:$telno\n";
print MAIL " 性別:$sex\n";
print MAIL " メールアドレス:mailto:$mailad\n";
print MAIL "お問合わ、ご相談内容:";
print MAIL " $con1\n";
print MAIL "---------------------------------------------\n";
close(MAIL);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Fortranでの出力ファイル 2 2023/03/21 21:25
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Java 動かなくなったのでJavaソースを手直しお願いします。 2 2022/04/30 05:35
- Excel(エクセル) マクロでテキストファイルを読み込んだ際の最終セルにデータと改行が含まれる問題の改善方法 2 2022/03/25 16:50
- その他(プログラミング・Web制作) pandasでまとめてインデックスを削除するにはどうすればいいですか? たとえば、以下のプログラムで 1 2022/07/31 23:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の中に重複文字列があるか...
-
C言語のバイナリモードでのfsca...
-
perl-cgi 文字の長さでソートし...
-
awkスクリプトでダブルクォーテ...
-
window.open でのファイル指定方法
-
ListBoxのデータを高速でファイ...
-
C言語で特定の行を抽出する方法...
-
ReadLineでの読み出し行を指定する
-
VBAでCSVファイルを途中行まで...
-
パスから最後のディレクトリだ...
-
ヒアドキュメントの書き方
-
Edge スクレイピング
-
ExcelをCSV書き出す場合のシー...
-
close()で例外が投げられる理由
-
CSVデータの編集の際の重複チェ...
-
Perlで特定行から特定行までを...
-
オープンしたファイルで行の連結
-
utf-8のCSVをshift_jisに変換し...
-
python renameについて
-
openした後、closeしないでプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列の中に重複文字列があるか...
-
Visual C++を用いたシリアル通信
-
perlで複数行のデータを自由に...
-
要素を削除する最適な方法
-
C言語のバイナリモードでのfsca...
-
Perl ファイルを読込んで日付の...
-
2次元の配列にデータを格納したい
-
pandasでまとめてインデックス...
-
[arduino]数値の大きなデータを...
-
行・列の整理! perl
-
<IN>; を単独で使う
-
データの日付でソートをしたい
-
PerlでInline Cを使った配列の...
-
perl-cgi 文字の長さでソートし...
-
Pythonでegrep機能をつかいたい
-
batファイルでrenameができませ...
-
awkスクリプトでダブルクォーテ...
-
VBAでCSVファイルの特定行を書...
-
ExcelをCSV書き出す場合のシー...
-
VBAでCSVファイルを途中行まで...
おすすめ情報