CGIプログラムによるメールの送信
ホームページからメールを送信する場合、大きく分けてユーザー側のメールソフトの機能を用いる場合と、CGIプログラムによりサーバー側で処理する方法があります。
ユーザー側で処理する場合は、リンクとフォームを使う方法があります。リンクは、単純にリンク先に、メールアドレスの前にmailto:というプロトコルをつけたものを設定します。すると、メールソフトが適正に、設定されていればメールソフトが立ちあがり、メールを送る準備が整います。
フォームを使った場合も、formタグのaction属性に上記と同じmailto:+メールアドレスを設定します。(ただし、この場合はエンコードなどをしておかないと直接メールソフトだけではよめません)
本文には、フォームの内容が"name属性"="内容"という形で、挿入されます。
サーバー側で処理する場合は、多くの場合Sendmailを使うことになります。(qmailなどのMAT(メール転送エージェント)も使えるようです)
簡単に言えば、所定の形式に整えたメールのデーターを、sendmailなどのMATに送り、送信を依頼します。
Sendmailを使ったメール送信
Sendmailを例とると、簡単に言うと手順は以下のようになります。
- フォームなどから送られてきた内容を、jcode.plなどを利用し文字コードをjisに変換する。
- sendmailを開く。(ファイルを開く時と同様)
- 開いたファイルハンドルに対し、送信先(To)、送信者(From)、タイトル(Subject)を書き込み、コンテンツタイプを表す「Content-Type: text/plain;\n\n」を書き込んで、最後に本文を書き込みます。
- ファイルハンドルをクローズし、書き込んだ内容をsendmailに書き込み(送信し)ます。
- sendmailがメールを送信します。
サンプルは以下にて、公開していますので参考にしてください。(こんなものでもちゃんと送れます)
(http://www.story-maker.jp/cgi/basic/m-basic.txt)
参考:フォームからのメール送信
フォームにメールアドレスを指定してメールを送信するソースを以下に載せます。
<form name="form1" action="mailto:メールアドレス" method="post" onsubmit="document.form1.encoding='text/plain'"> <input type="submit" name="submit" value="submitq"> <input type="text" name="name" value="" size="5"> <input type="text" name="body" value="" size="5"> </form>
ポイント
- サーバー側からメールを送るには、sendmailなどのMATが必要。
- メールを送るのは、ファイルを開くようにsendmailを開いて書き込む。
Form | HomePage | Cookie |
□新着
- 2016/04/14
ページ復旧 - 2007/10/06
Story Maker始動 - 2007/06/13
久々の更新 - 2007/01/06
logちょっとバージョンアップ - 2006/07/27
ホームページのPerl 終了
□Topics
- 2016/04/14
サイト復旧 - 2007/10/06
StoryMaker始動 - 2007/06/13
今後にぜひご期待を! - 2006/06/26
今後について - 2006/06/15
環境の変化