使用smtp发送名称和电子邮件通过正文

时间:2012-04-16 20:58:51

标签: php smtp phpmailer

晚上好,我有phpmailer代码,允许我连接到smtp谷歌服务并通过它发送消息,这里是代码

 <?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'];

我的第二个问题是 我还有一个3个单选按钮用于主题,我用过

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

但仍然收到空主题 请你帮助我好吗 提前谢谢


谢谢你的时间,我的第一个问题就解决了, 谢谢你 , 但遗憾的是第二个没有。我给了单选按钮相同的名称,并改变了它们的值,如下所示

<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" />

当我选择一个单选按钮时,它假设值为free或premium,但它的值为1 我尝试了你的代码(我把它放在$ n值下)

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

并尝试了这个

$sub = $_POST['element_4'];

但它不起作用 拜托,请你帮帮忙吧 提前谢谢

1 个答案:

答案 0 :(得分: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";