こんにちは皆さん、phpmailer を使用して送信される html/php ファイルにフォーム データを追加することに関して、非常に基本的な php の問題があります。
GmailアカウントSMTPを使用して、フォームの送信が成功したときにHTMLメールを送信します。
フォーム送信時に、HTML メールが正常に送信されています。
問題/問題:
メールで送信するHTMLファイルの各種ヘッダーに入力したFORM DATAを添付できません。
これは、フォーム送信用に呼び出される PHP のコードです。email-content.php は、Gmail SMTP を使用して HTML メールとして正常に送信されるファイルです。
<?php
$salutation = $_POST['salutation'] ;
$name = $_POST['name'] ;
//
$dateDOB = $_POST['DOB_Day'] ;
$monthDOB = $_POST['DOB_Month'] ;
$yearDOB = $_POST['DOB_Year'] ;
//
$mobileLandline1 = $_POST['mobileLandline1'] ;
$mobileLandline2 = $_POST['mobileLandline2'] ;
$mobileLandline3 = $_POST['mobileLandline3'] ;
$mobileLandline4 = $_POST['mobileLandline4'] ;
$mobileLandline5 = $_POST['mobileLandline5'] ;
$mobileLandline6 = $_POST['mobileLandline6'] ;
$mobileLandline7 = $_POST['mobileLandline7'] ;
$mobileLandline8 = $_POST['mobileLandline8'] ;
//
$language = $_POST['language'] ;
//
$address = $_POST['address'] ;
$city = $_POST['city'] ;
$state = $_POST['state'] ;
$pin = $_POST['pin'] ;
//
$fax = $_POST['fax'] ;
$email = $_POST['email'] ;
//
$passwordOption = $_POST['passwordOption'] ;
$passwordOptionProvided = $_POST['passwordOptionProvided'] ;
//Using PHPMailer with GMAIL
include("class.phpmailer.php");
include("class.smtp.php"); // note, this is optional - gets called from main class if not already loaded
$mail = new PHPMailer();
$body = $mail->getFile('email-content.php');
$body = eregi_replace("[\]",'',$body);
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->SMTPSecure = "ssl"; // sets the prefix to the servier
$mail->Host = "smtp.gmail.com"; // sets GMAIL as the SMTP server
$mail->Port = 465; // set the SMTP port
$mail->Username = "####@gmail.com"; // GMAIL username
$mail->Password = "#######"; // GMAIL password
$mail->From = "subscriptionForm@abc.com";
$mail->FromName = "Subscrition Form";
$mail->Subject = "SUBSCRIPTION FORM DETAILS FROM WEBSITE";
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body
$mail->WordWrap = 50; // set word wrap
$mail->MsgHTML($body);
$mail->AddReplyTo("replyto@yourdomain.com","Webmaster, ####.com");
$mail->AddEmbeddedImage('logo.png', 'logo');
//$mail->AddAttachment("/path/to/file.zip"); // attachment
//$mail->AddAttachment("/path/to/image.jpg", "new.jpg"); // attachment
$mail->AddAddress("contact@abcd.com","Subscription Form");
$mail->IsHTML(true); // send as HTML
if(!$mail->Send()) {
header('Location: http://www.#####.com/subscription-form-fail.html');
} else {
//echo "Message has been sent";
// header('Location: $submissionsuccess');
header('Location: http://www.####.com/subscription-form-success.html');
}
?>
email-content.php のコード : (部分的に、php データ値を HTML テンプレートに呼び出しています)
<table width="590" border="0" cellspacing="0" cellpadding="0" >
<tr>
<td align="left" valign="top" width="50" style="font-size:10pt; font-family:Tahoma, Geneva, sans-serif; padding:2px;">Name :</td>
<td align="left" valign="top" width="30" style="font-size:10pt; font-family:Tahoma, Geneva, sans-serif; padding:2px;"><?php $salutation ?></td>
<td align="left" valign="top" width="460" style="font-size:10pt; font-family:Tahoma, Geneva, sans-serif;">
<table width="460" border="1" cellspacing="0" cellpadding="0" style=" border-collapse:collapse;font-size:10pt; font-family:Tahoma, Geneva, sans-serif;border:1px solid #e0e3e5;" >
<tr>
<td style="padding:2px;"><?php $_POST['name'] ?></td>
</tr>
</table>
私はphpプログラミングの初心者で、ここで非常に基本的なものが欠けていると確信しています。送信された名前の値は、送信された HTML メールには表示されません。
この問題に関するガイダンスは高く評価されます
ありがとう
ムーディー