0

こんばんは、smtp googleサービスに接続してメッセージを送信できるphpmailerコードがあります。コードは次のとおりです

 <?php 
require_once("class.phpmailer.php");
include("class.smtp.php"); 
$sname="=?UTF-8?B?".base64_encode($sname)."?=\n";
$smail=""; 
$rname="=?UTF-8?B?".base64_encode($rname)."?=\n"; 
$rmail="";
$sub="=?UTF-8?B?".base64_encode($sub)."?=\n"; 
$body=$n;   
$sname=$_POST['element_2'];
$n= $_POST['element_1'] . $_POST['element_3'];
$mail = new PHPMailer();
$mail->IsSMTP(); 
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$gmail="account@gmail.com";
$gpass="password";
$mail->Username = $gmail; 
$mail->Password = $gpass; 
$mail->AddReplyTo($smail,$sname); 
$rmail = "receive@hotmail.com";
$rname="me";
$mail->AddAddress($rmail, $rname); 
$mail->From = $smail; 
$mail->FromName = $sname;
$mail->Subject = $sub; 
$mail->MsgHTML($body); 
$mail->IsHTML(true); 
if(!$mail->Send()) {
echo "fail";
}else{
echo "success";
}
?>

問題は、送信者の名前を取得できないことです。本文に挿入しようとしましたが、成功しませんでした

$n= $_POST['element_1'] . $_POST['element_3'];

私の2番目の問題は、件名用の3つのラジオボタンもあります。

if(isset($_POST['radio1'])){
$sub = "free";
}
if(isset($_POST['radio2'])){
$sub = "premium";
}

しかし、まだ空の件名を受け取ります。よろしくお願いします。


お時間をいただきありがとうございます。最初の問題は解決しました。おかげで、2 番目の問題は残念ながら解決しませんでした。ラジオボタンに同じ名前を付けて、次のように値を変更しました

<input id="element_4_1" name="element_4" class="element radio" type="radio" value="free" />
<input id="element_4_1" name="element_4" class="element radio" type="radio" value="premium" />

ラジオボタンを選択すると、値が無料またはプレミアムになると思われますが、値が1になっていますコードを試しました( $n value のすぐ下に配置しました)

$sub = isset($_POST['element_4']) ? $_POST['element_4'] : "no subject";

そしてこれを試しました

$sub = $_POST['element_4'];

しかし、うまくいきませんでした。あなたの助けを借りてください。

4

1 に答える 1

0

置く

$body=$n;   

$n= $_POST['element_1'] . $_POST['element_3'];

$_POST['element_1'] and $_POST['element_3']実際にこのページに投稿されている場合は機能します!

ラジオボタンについては、すべて同じ名前で、メールの件名に値を付ける必要があります。

$sub = isset($_POST['radio']) ? $_POST['radio'] : "no subject";
于 2012-04-16T21:22:31.720 に答える