[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>