[PHP-users 12854] PHP-Postfixでのメール送信
Tomonori Ueno
php-users@php.gr.jp
Tue, 28 Jan 2003 14:33:01 +0900
はじめまして。
上野と申します。
御世話になります
PHPで書かれたメールフォームプログラムからメールが送信できず困っていま
す。
厳密にはメール送信はできますが、件名と差出人だけが送信できるのに、
本文はブランクになってしまいます。 フォーム送信したコピーを確認のため
に
送信者に返す用途のプログラムですが。
シェルからはmailコマンドで日本語メールがISPに送れます。
環境はVineLinux2.6ftp, Apache1.3.27, PHP4.3.0, Postfix-1.1.12-0vl0.26
です。
PHPのインストール時は、/usr/sbin/sendmailにパスがあるのを確認していま
す。
メールアドレスは値が渡されていて、名前や住所や趣味などの値が渡されてい
ないと
仮定すれば、どこをチェックすればよろしいのでしょうか?
下記がスクリプトです。 これはある教則本のサンプルですが。
どうぞよろしくお願いいたします。
<?php
require_once( "common.php" );
if ( $_REQUEST[ "SUBMIT" ] != "" ) {
$IsError = false;
$ErrorMessage = "";
if ( $_REQUEST[ "VALUE_NAME" ] == "" ) {
$IsError = true;
$ErrorMessage .= "名前を入力してください。<BR>";
}
if ( $_REQUEST[ "VALUE_MAIL" ] == "" ) {
$IsError = true;
$ErrorMessage .= "メールアドレスを入力してください。<BR>";
}
if ( $IsError == false ) {
$mail_to = $_REQUEST[ "VALUE_MAIL" ];
$subject = "ありがとうございました。";
$body = "PHPメールフォームのご利用ありがとうございました。\n" .
"以下は、送信された内容のコピーです。\n\n";
$body .= "名前 :" . $_REQUEST[ "VALUE_NAME" ] . "\n";
$body .= "郵便番号 :" . $_REQUEST[ "VALUE_POST" ] . "\n";
$body .= "住所 :" . $_REQUEST[ "VALUE_ADDRESS" ] . "\n
";
$body .= "メールアドレス:" . $_REQUEST[ "VALUE_MAIL" ] . "\n";
$body .= "趣味 :" . $_REQUEST[ "VALUE_FAVORITE" ] . "
\n";
mb_send_mail( $mail_to, $subject, $body );
header( "Location: http://" . $_SERVER[ "HTTP_HOST" ]
. dirname( $_SERVER[ "PHP_SELF" ] ) . "/complete.php?VALUE_
NAME="
. urlencode( $_REQUEST[ "VALUE_NAME" ] ) );
exit();
}
}
?>
<HTML>
<HEAD><TITLE>05-01</TITLE></HEAD>
<BODY>
<H1 ALIGN="CENTER">メールフォーム</H1>
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>"
METHOD="POST">
<?php
if ( $IsError == true ) {
?>
<FONT COLOR="RED"><B><?=$ErrorMessage?></B></FONT>
<?php
}
?>
下記項目に情報を入力後、「送信」ボタンをクリックしてください。<BR>
<FONT COLOR="RED">*</FONT>のついた項目は入力必須です。
<TABLE WIDTH="100%" BORDER="0">
<TR>
<TD BGCOLOR="#999999">お名前</TD>
<TD BGCOLOR="#CCCCCC">
<INPUT TYPE="TEXT" NAME="VALUE_NAME" SIZE="20" VALUE="<?php
HESC( $_REQUEST[ "VALUE_NAME" ] );
?>"><FONT COLOR="RED">*</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="#999999">郵便番号</TD>
<TD BGCOLOR="#CCCCCC">
<INPUT TYPE="TEXT" NAME="VALUE_POST" SIZE="20" VALUE="<?php
HESC( $_REQUEST[ "VALUE_POST" ] );
?>"></TD>
</TR>
<TR>
<TD BGCOLOR="#999999">住所</TD>
<TD BGCOLOR="#CCCCCC">
<INPUT TYPE="TEXT" NAME="VALUE_ADDRESS" SIZE="50" VALUE="<?php
HESC( $_REQUEST[ "VALUE_ADDRESS" ] );
?>"></TD>
</TR>
<TR>
<TD BGCOLOR="#999999">メールアドレス</TD>
<TD BGCOLOR="#CCCCCC">
<INPUT TYPE="TEXT" NAME="VALUE_MAIL" SIZE="40" VALUE="<?php
HESC( $_REQUEST[ "VALUE_MAIL" ] );
?>"><FONT COLOR="RED">*</FONT></TD>
</TR>
<TR>
<TD BGCOLOR="#999999">趣味</TD>
<TD BGCOLOR="#CCCCCC">
<INPUT TYPE="RADIO" NAME="VALUE_FAVORITE" VALUE="旅行"
<?php
echo( ( $_REQUEST[ "VALUE_FAVORITE" ] == "旅行" ) ?
"checked" : "" );
?>>旅行
<INPUT TYPE="RADIO" NAME="VALUE_FAVORITE" VALUE="音楽"
<?php
echo( ( $_REQUEST[ "VALUE_FAVORITE" ] == "音楽" ) ?
"checked" : "" );
?>>音楽
<INPUT TYPE="RADIO" NAME="VALUE_FAVORITE" VALUE="プログラミング"
<?php
echo( ( $_REQUEST[ "VALUE_FAVORITE" ] == "プログラミング" ) ?
"checked" : "" );
?>>プログラミング
</TD>
</TR>
<TR>
<TD COLSPAN="2" ALIGN="CENTER">
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE=" 送 信 ">
<INPUT TYPE="RESET" NAME="CLEAR" VALUE=" ク リ ア ">
</TD>
</TR>
</TABLE>
</FORM></BODY></HTML>