revTalk CGI 07: shell を使ってEメールをブラウザーから送る1
表示サンプル
UNIX のコマンドライン mail を使う方法と、 sendmail を使う方法があります。
ここでは、mail を使って、REVサーバーのオーナーにクライアントからメールします。
<!-- メールするためのフォーム。このサンプルのファイル名「rev07_email1.irev」 -->
<form action="rev07_email1.irev" method="POST" name="mail1" >
Your Name: <input name="name" type="text" size="20" />
Email Address: <input name="email" type="text" size="20" /> <br \>
<textarea name="comment" rows="6" cols="60" /></textarea> <br \><br \>
<input type="submit" name="submit" value="Send Mail">
</form>
コメント欄が空白でなければ、ここからは revTalk で
宛先になるREVサーバーのオーナーのメールアドレスを、変数「tServerOwner」に入れておきます。
「02 Web フォーム POST」と同じように $_POST["name"] 等で、
それぞれのインプットテキストを変数に格納し、さらにマトメて tMailText に入れる。
put the tempName into tFile
put tMailText into url ("file:" & tFile)システムが作りだす tempName をファイル名として、送るメールの本文を一旦保存して
(テンポネームで一旦保存しないと、メールは送れません)
put "mail<" && tFile && tServerOwner into tCommand
「tComment」に上記を shell コマンドとして格納して、shell を使います。
get shell(tCommand)
以下 revTalk 通しで
<?rev
put $_POST["name"] into tName
put $_POST["email"] into tEmailAddress
put $_POST["comment"] into tComment
if tComment <> empty then
-- この部分の宛先メールアドレスは、実際の時には書き換える --
put "mymail@server.com" into tServerOwner
put "メールがありましたよー。" &cr& "name: " & tName &cr& \
"email: " & tEmailAddress &cr&cr& tComment into tMailText
put the tempName into tFile
-- システムが作るテンポネーム でメール文を一旦保存 --
put tMailText into url ("file:" & tFile)
put "mail<" && tFile && tServerOwner into tCommand
get shell(tCommand)
end if
?>
表示サンプルは、メールを送るスクリプト部分をコメントにしてありますから、実際のメールを送れません。