あるフォームに「タイトル」・「メールアドレス」・「メッセージ」を
入力するテキストボックス(TYPE="TEXT")・テキストエリアがあります。
そこページ内にある送信ボタンをクリックされたらフォームで入力された
メールアドレス宛に、同フォーム入力されたタイトル・メッセージを送信するような処理をperlで
組みたいのですが、どのような処理をさせればよろしいのでしょうか?
そのような処理をやっているサンプルをご紹介していただけますと
大変うれしいです。

この本文だけではイメージしにくいとは思いましたので、あえてデモみたいな
ページを以下のURLに用意しました。
 
  http://www.hidecnet.ne.jp/~uruno/

もし必要な場合は、上URLにアクセスください。
大変厄介な質問になって申し訳ありません。
皆様の知恵を貸して頂けますようお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

なんとなく感じるだけなんですけど、Windows系なんでしょうね。



sendmailコマンドがあれば、簡単なんですけど(→参考URL)。

参考URL:http://wakusei.cplaza.ne.jp/twn/wwwmail.htm
    • good
    • 0

サンプルはないですが,メールソフトがメール送信時に行っている作業をPerlにやらせるのはどうでしょう?具体的には。



1.日本語のテキストを含んでいればJISにエンコード。
2.ヘッダと本文を組み立てて,メールのデータを作る。
3.SMTP(送信メール)サーバに接続。
3.SMTPをしゃべって,メール送信の準備。
4.メールのデータ送り込む。
5.SMTPをしゃべって,後始末。
6.SMTPサーバとの接続を切断。

こんな感じです。
とりあえず,telnetでSMTPサーバの25番ポートに繋いで,自分がSMTPを使ってメールを送れるようになりましょう。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qメールの署名設定

メールの署名設定がリッチテキスト形式のなっていて、テキスト形式に代えると青字のアドレスが黒字になってしまします。
返信の場合は変えても大丈夫なのですが、どうすればテキスト形式に変更できますか?

Aベストアンサー

オプションでテキスト形式で作成するようにしていますよね?
それでもリッチテキストになってしまうのですか?
返信するときに元のメールと同じ形式にする、とかしてます?

それ以外に設定はありません。
これでもおかしいなら、IEを再インストールしてみましょう。

Qテキストフォームで数字が3桁以上または以下の入力があったらエラーをする処理。

こんにちわ。テキストフォームに入力した数字が3桁以上または以下だったらエラー画面になるという処理を考えています。3桁いがいはだめという処理はどうすればいいんでしょうか?記述の仕方を教えてください。よろしくお願いします。

Aベストアンサー

「3桁の数字」というのが 100 ~ 999 までの整数なのか、あるいは、例えば 024 のように数字3文字の組み合わせなら何でもよいのか、によってチェック方法が少し変わりますが、どちらの場合も正規表現でチェックするのが簡単でしょう。

前者ならば
  if ($data !~ /^[1-9]\d\d$/) { エラー }
後者ならば
  if ($data !~ /^\d{3}$/) { エラー }
となります。

なお、Perl は数値の比較・演算を行う時、ちょっと気を利かせて 123abc を 123 として扱ってくれるため、単に
  if ($data < 100 || 999 < $data) { エラー }
としてしまうと、123abc のような不正な入力値の場合にエラーとすることができません。

QOutlook 2003 メール返信時の署名のずれについて

よろしくお願いします。
現在の設定
【OS】 Windows XP
【メール】 OutLook 2003
【形式】  HTML
【フォント】MS P明朝 新規・返信すべて
【署名】 返信時、新規作成時に設定

メールを返信する際に、署名を設定しているのですが、
相手のフォントが自分のフォントと違っている
場合、署名がずれておかしな形になります。
どんなフォントでも署名がずれないやり方って
ありますでしょうか?

Aベストアンサー

基本的にありません。

もともとメールは単なるテキストです。
質問者さんは、HTML形式でメールを送られているようですが、
メールを受け取った方が、HTMLメールに対応していなければ、
文字サイズやフォントはすべて無効になり、
相手の環境に依存します。

また、HTMLメールで同じフォントを指定している場合でも、
Windows XPとVistaでは、見え方が異なるようです。

メールの署名を凝ったものにするのも結構ですが、
ちょっとでもずれると表示が激しく乱れるようなものは
避けた方が無難と思います。

Qアンケートフォーム複数ページ間のテキストフォームデータのの受け渡し

こんにちわ、1ページ目の名前のテキストフォームに入力した内容のデータと2ページ目のメールアドレスのテキストフォームに入力したデータをのデータを確認画面で表示させたいのですがうまくできません。わらをもすがる思いでここに書きました。
1ページ目
名前を入力
2ページ目
メールアドレスを入力
3ページ目
確認画面
4ページ目
サンクスページ

わたしが書いたソースは以下のとおりです。。
どうしてもデータをうまく確認画面にもっていくことができませんよろしければ詳しい方、アドバイスをお願いいたします。よろしくお願いします!
※ここの文字数制限が800文字なのでかなり省略化しています。

if ($FORM{'action'} eq "page2") {&page2;}
elsif ($FORM{'action'} eq "") {&page1;}
elsif ($FORM{'action'} eq "kakunin") {&kakunin;}
elsif ($FORM{'action'} eq "kanryou") {&kanryou;}
#1ページ目
sub page1{
print <<"EOF";
Content-type: text/html
<html>
<head>
<meta content="text/html; charset=shift_jis">
</head>
<body>
<form method="post" action="$script">
□お名前(漢字)<br>
<input type="text" size="12" name="name1" value="$FORM{'name1'}" >
<input type="hidden" name="name1" value="$name1">
<input type="hidden" name="action" value="page2">
<input type="submit" value="次へ">
</form>
</body>
</html>
EOF
exit;
}
#2ページ目
sub page2{
文字数制限のため省略
メールアドレス
}
#■フォームのデコード処理
sub decode{
文字数制限のため省略
}
#確認画面
sub kakunin{
文字数制限のため省略
}
#送信完了画面
sub kanryou{
文字数制限のため省略
}

こんにちわ、1ページ目の名前のテキストフォームに入力した内容のデータと2ページ目のメールアドレスのテキストフォームに入力したデータをのデータを確認画面で表示させたいのですがうまくできません。わらをもすがる思いでここに書きました。
1ページ目
名前を入力
2ページ目
メールアドレスを入力
3ページ目
確認画面
4ページ目
サンクスページ

わたしが書いたソースは以下のとおりです。。
どうしてもデータをうまく確認画面にもっていくことができませんよろしければ詳しい方、アドバイスをお願...続きを読む

Aベストアンサー

1ページ目で
<input type="text" size="12" name="name1" value="$FORM{'name1'}" >
<input type="hidden" name="name1" value="$name1">
と、name1 が二つあるのがおかしいです。

あとは2ページ目以降を見ないと何ともいえません。

Qアウトルックのメール送信時に手動で署名を入れたいのですが

アウトルック200のメール送信時に、通常は署名を入れない状態にしておいて、必要な時にだけ手動で入れるようにするにはどうすれば良いのでしょうか?
メール本文作成画面で、挿入から定型句の中の署名を選んで入れることはできるのですが、それだと、ツールのオプションののメール形式の中の署名で作成された署名が入力されずに、ただ単純に名前だけ入力されます。
アウトルックのヘルプを見たら、メール作成のエディタをワードにした時とアウトルックにした時とでは違うらしく、ワードをエディタとして選んだ場合、手動で入力される署名は、ワード起動時に入力した使用者名が挿入されるとのこと。
ならば、アウトルック上で作った署名を手動で入力するには、エディタをアウトルックにしないと不可能なのでしょうか?
それと、エディタをワードにした場合とアウトルックにした場合とでは何が違うのでしょうか?どちらの方が便利でしょうか?

Aベストアンサー

アウトルック2000を使ってます。
アウトルックのツールメニューのオプションでメール形式を選びます。
ここでたくさんの署名を作る事が出来ます。
私の場合、遊び感覚や正式な署名など色々作っています。
私は通常使用頻度の高い署名を設定してます。

テキストメール・HTMLメール・雛型メールについての署名の事。

メールを書くとき署名が既に入る設定にしていますが、その署名を使いたくないときは、面倒でもデリートで裂く一旦削除します。
メール作成画面で、挿入メニューの署名を選択すると、たくさん作った署名にタイトルを付けてありますので数ある署名から適宜を選びます。


ワードなどのオフィスドキュメントのメールについての事。

ワードエディターでの署名はワードのツールメニューの中のオプションの全般タブに電子メールオプションがあります。
その中で電子メール用の署名を作ります。そこでも色々な署名が出来ます。
そこで各種作るとワードメールを使った場合、挿入から署名を選ぶとワード起動時の使用者名の他にも、先ほど作った署名を任意に選ぶ事が出来ます。

余談ですが、動画のイラスト入り署名も出来ますよ。


説明が下手で申しわけありません。
わからなかったら補足します。

間違いなく出来ますよ。
色々署名で楽しんでいます。

(奥が深いです)

アウトルック2000を使ってます。
アウトルックのツールメニューのオプションでメール形式を選びます。
ここでたくさんの署名を作る事が出来ます。
私の場合、遊び感覚や正式な署名など色々作っています。
私は通常使用頻度の高い署名を設定してます。

テキストメール・HTMLメール・雛型メールについての署名の事。

メールを書くとき署名が既に入る設定にしていますが、その署名を使いたくないときは、面倒でもデリートで裂く一旦削除します。
メール作成画面で、挿入メニューの署名を選択すると、...続きを読む

Q入力フォームと同種のデータを送信するスクリプト

パソコン(Windows XP)にActive_Perl Ver5.8.0をインストールしてPerlスクリプトを動かしています。
入力フォームのデータを受け取って処理するスクリプトが既にあるのですが、このスクリプトに入力フォームと同種のデータをループさせて繰り返し送り込むスクリプト作りたいと思っています。
やり方もしくはコード例を教えていただければと存じます。
よろしくお願いいたします。

Aベストアンサー

入力フォームからデータを取り出すのに CGI.pm を
使っているのでしたら、CGI.pm のデバッグ機能が
使えます。

test.cgi が入力フォームからのデータを受け取る
プログラムとすると
perl test.cgi name1=value1 name2=value
のように起動するだけで、フォームからの入力が
エミュレートされます。シェルスクリプトなり、perl
スクリプトなりで、上記のコマンドを生成し実行させれば
よいです。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6128/perl/cgipm.html
のデバッグ機能のところを読むとよいです。

ウェブサーバを経由して動作させたいのであれば、
JMeter を使うのがよいでしょう(利用は簡単ですが、
パラメータの動的な設定はあまり柔軟にはできません)。
http://www.stackasterisk.jp/tech/engineer/jmeter01_01.jsp

あるいは perl の WWW::Mechanize モジュールを使って
スクリプトを書いてもよいと思います。
http://digit.que.ne.jp/work/wiki.cgi?Perl%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%2fWWW%3a%3aMechanize

参考にあげた URL は Google で検索して見つかったものです。
多数の記事が見つかりますので、自分に取ってわかりやすい
ものを参考にされればよいと思います。

入力フォームからデータを取り出すのに CGI.pm を
使っているのでしたら、CGI.pm のデバッグ機能が
使えます。

test.cgi が入力フォームからのデータを受け取る
プログラムとすると
perl test.cgi name1=value1 name2=value
のように起動するだけで、フォームからの入力が
エミュレートされます。シェルスクリプトなり、perl
スクリプトなりで、上記のコマンドを生成し実行させれば
よいです。
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6128/perl/cgipm.html
のデバッグ機能のところを...続きを読む

QMicrosoft Office Outlookメール文に署名貼付で

Microsoft Office Outlookメールを利用しております。
Outlook expressの時は、メール文中に署名の貼付が、メニュー[挿入]、[署名]から署名を挿入できましたが、Microsoft Office Outlookでは、どのようにすれば良いのでしょうか、よろしく、お願い致します。

Aベストアンサー

Microsoft Office : Office Outlook 2003 コミュニケーション テクニック - 署名を作成してメールを使い分けたい!
http://www.microsoft.com/japan/office/previous/2003/experience/workstyle/tips/outlook/tips3.mspx

Outlook 2007 で電子メールの署名を作成する方法
http://support.microsoft.com/kb/931825/ja

Qフォームでインクリメント入力→ イベント処理をしたい

フォームで単語検索を行うCGIプログラムに関して、この質問コーナーで親切なアドバイスに助けられながら、どうにか、基本ができたのですが、つぎに、一歩進んで、submitボタン「単語検索」を取り外し、その代わりにフォーム部品として一行テキスト入力領域(input type=text name=inclimentbox)を設けて、そこにキーボードから文字を入れる毎にインクリメント入力→ インクリメント検索結果表示、としようと考えています。inclimentboxに入力が行われるたびにonChange = dic.cgi などと指定して、イベント処理で辞書を読みに行き検索して結果を表示するCGIを試みていますが、dic.cgi が見つからないと言ってると思えるエラーが出ます。
 初心者なので、CGIではできないイベント処理なのかも、と自信がありません。いかがでしょうか。アドバイスをいただければ幸いです。

Aベストアンサー

>ファイル・ダウンロードを尋ねるウィンドウが出ます。

dic.cgiをcgi ファイルと認識していないようです。
Perl のパスは合ってますか。
この作業をする前は、cgi 動いてたんですよね。
設定変えてたり、フォルダ変えてたりしてませんか。

Qヤフーメールで署名がつけられない

ヤフーのメールを使っています。昨日あたりに突然仕様変更がありました。

そして、メール作成画面の下にあった、「メールに署名を入れる」とかいうボタンが見当たらなくなりました。この仕様で署名を入れるにはどうすればいいのでしょうか?

設定画面の「全てのメールに署名を入れる」だと、個人的には都合が悪いです。あと、これにチェックを入れて自分にテスト送信してみても、署名がありませんでした。

勝手に仕様変えるのって不便極まりないですね。

Aベストアンサー

#1です。

私は、YahooBB会員ですが、署名の入り具合を確認しました。

Yahooの契約IDのybb.ne.jpでの送信では、メールオプションの「メールアドレスの追加・編集・削除」の編集で作成した署名が、

yahoo.co.jpでの送信では、メールオプションの「署名」の項目で作成した署名が、「すべての送信メールに署名を付ける」を有効にすると、そのまま本文にそれぞれの署名が自動的に入るようです。

従って、作成画面での「利用する」のチェック入れは無くなって、不要であれば、本文から削除する必要があります。

追加アドレスでも使う署名はそれぞれ会員IDと同じですが、「署名を利用する」のチェックを入れる項目は作成画面にあって、チェックを入れてそのまま送信するとそのメールに自動的に入るようです。

まだ、完全にすべてのIDに行き渡っていない仕様のようですが、確認した状況はそのようになっていました。

QPerl webのテキストボックスに入力し送信取得

Perl初学者です。Perlでのインターネット通信に興味があります。

webサイトのテキストボックスにテキストを入力し、それを送信・結果を取得するためのプログラムを教えてください!

(例)
単語を英訳するプログラムが作りたかったので、”http://ejje.weblio.jp/”の検索ボックスに単語を入れて送信し、帰ってきたURLのhtmlを取得する、といった感じ?

少し勉強したLWPモジュールを使って頂けると嬉しいです。
もちろん、こっちの方が効率がいいよ、といった方法があれば是非教えてください!
よろしくお願いします。

Aベストアンサー

適当。表示がくずれるので、空白2文字を全角空白にしていることに注意。

#!/usr/bin/perl -T
use strict;
use warnings;
use utf8;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use CGI::Pretty;
use Encode;
use LWP::UserAgent;
use HTTP::Response;
use HTML::TreeBuilder;

use constant URL => q{http://ejje.weblio.jp/content};

my $q  = CGI->new();
my $word = $q->param("word");
my $mean = q{};

if ( defined $word ) {
  my $ua = LWP::UserAgent->new;
  $ua->agent('Mozilla/5.0');
  $ua->timeout(10);

  my $url = URL . '/' . $word;
  my $req = HTTP::Request->new( GET => $url );
  my $res = $ua->request($req);
  if ( $res->is_success ) {
    my $tree = HTML::TreeBuilder->new;
    $tree->parse( decode( 'utf8', $res->content ) );
    my ($attr) = $tree->look_down( 'class', 'Kejje' );
    $mean = $attr->as_HTML;
  }
  else {
    $mean = $res->error_as_HTML;
  }
}
else {
  $word = '';
}

my $body = do { local $/; <DATA> };
$body =~ s/%%word%%/$word/;
$body =~ s/%%mean%%/$mean/;

binmode STDOUT, ':encoding(utf8)';
print $q->header( -charset => 'UTF-8' ),
  $q->start_html( -title => "test", -lang => 'ja', ),
  $body,
  $q->end_html;

__DATA__
<form method="get">
Word : <input type="text" name="word" /><br/>
<input type = "submit" />
</form>
<hr>
Word : <br>
%%word%%
<br>
Mean : <br>
%%mean%%

適当。表示がくずれるので、空白2文字を全角空白にしていることに注意。

#!/usr/bin/perl -T
use strict;
use warnings;
use utf8;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
use CGI::Pretty;
use Encode;
use LWP::UserAgent;
use HTTP::Response;
use HTML::TreeBuilder;

use constant URL => q{http://ejje.weblio.jp/content};

my $q  = CGI->new();
my $word = $q->param("word");
my $mean = q{};

if ( defined $word ) {
  my $ua = LWP::UserAgent->new;
  $ua->agent('Mozilla/5.0');
 ...続きを読む


人気Q&Aランキング

おすすめ情報