我的期望是第一个为1.html填写页面  将表单提交给2.php中  在php页面中通过按钮发送表单中的内容到邮箱中去(是不是需要单独再写函数,然后通过button调用?),同时跳转到3.html中通知用户是否发送成功
从网上找到的是这个,放到2.php中,虽然能发送,但是接收中文为乱码,而且这个在1.html提交表单时就发送了,与自己的目标不一致。
另外像这个mail->body是文件内容,这个能接收用$传值吗?可以写html代码吗?
<?php
//导入类文件
require("class.phpmailer.php");
//声明类
$mail = new PHPMailer();
// 设置使用 SMTP
$mail->IsSMTP(); 
// 指定的 SMTP 服务器地址                 
$mail->Host = "61.172.255.101";  
  
// 设置为安全验证方式   
$mail->SMTPAuth = true; 
// SMTP 发邮件人的用户名
$mail->Username = "[email protected]";   
       
// SMTP 密码
$mail->Password = "kaibleservice"; 
           
$mail->From = "[email protected]";
$mail->FromName = "凯搏网";
$mail->AddAddress("[email protected]");
//AddAddress函数格式为("收件地址","收件人")//$mail->AddAddress("[email protected]","dalilng");
//$mail->AddAddress("[email protected]","daling"); // 可选
//可以回复的地址
//$mail->AddReplyTo("[email protected]", "TERRY2");
// 50字折行
$mail->WordWrap = 50;            
// 加附件
//$mail->AddAttachment("/var/tmp/file.tar.gz");    
// 附件,也可选加命名附件 
//$mail->AddAttachment("/tmp/image.jpg", "new.jpg"); 
// 设置邮件格式为 HTML
$mail->IsHTML(true);  
// 标题        
$mail->Subject = "请迅速给我回邮件,好么";    
// 内容
$mail->Body = '<B>邮件内容为空</B>';
// 附加内容
//$mail->AltBody = "This is the body in plain text for non-HTML mail clients";
//$mail->Send()为邮件发送函数,不成功时执行if内容
if(!$mail->Send())
{
echo "Message could not be sent. <p>";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
echo "Message has been sent";
?>

解决方案 »

  1.   

     在网上看,提交到下一个页面的话,下一个页面的话,先执行php 所以在1.html中提交的时候,就触发了发送邮件目前的方法是建立3.php存储发送邮件的函数,并且在函数中返回发送成功与否的提示<?php
           require("phpmailer/class.phpmailer.php");   //引入文件(把刚才解压的那些文件放到对应的路径就可以了)       $mail = new PHPMailer();   //实例化
           $mail->IsSMTP();                 // 启用SMTP
           $mail->Host="smtp.163.com";      //smtp服务器的名称(这里以163邮箱为例)
           $mail->SMTPAuth = true;         //启用smtp认证
           $mail->Username = "[email protected]";   //你的邮箱名
           $mail->Password = "xxxx";      //邮箱密码       $mail->From = "[email protected]";            //发件人地址(也就是你的邮箱地址)
           $mail->FromName = "name";              //发件人姓名
         $mail->AddAddress("[email protected]","11"); //添加收件人
           //$mail->AddReplyTo("*****@126.com", "****");    //回复地址(可填可不填)       $mail->WordWrap = 50;                    //设置每行字符长度
           //$mail->AddAttachment("images/01.jpg", "manu.jpg");   // 添加附件,并指定名称
           $mail->IsHTML(true);                 // 是否HTML格式邮件      $mail->CharSet="utf-8";    //设置邮件编码
          $mail->Subject = "测试";          //邮件主题
          $mail->Body    = "试试具体内容显示否";        //邮件内容
          $mail->AltBody = "This is the body in plain text for non-HTML mail clients"; //邮件正文不支持HTML的备用显示      if(!$mail->Send())
         {
              echo "Message could not be sent. <p>";
              echo "Mailer Error: " . $mail->ErrorInfo;
              exit();
         } else {
             echo "Message has been sent";
         }       
    ?> 目前还存在的问题是body即内容显示到邮箱里是口口这样的字,无论是直接输入还是用$取值,目前都出现这样的问题
      

  2.   

    用英文可以的,我从网上找了一个其他的发邮件的类,也正常了 $body = "人名:$firstname.$familyname<br>
    人名字拼音:$firstnamepy.$familynamepy<br>";
    这个我也试过了,是可以的。现在的问题是,我在第一张表单里用到了checkbox和radio,
    现在不知道如何在我的3.php中的$body(即邮件正文)里取得这两项的值在2.php中我是这样取值的
    radio 性别判断
    <?php 
    echo $_POST["sex"];
    ?>
    checkbox
    <?php
    $zixun = $_POST["zixun1"];
    for($i=0;$i<count($zixun1);$i++)
    echo $zixun1[$i]."<br>"
    ?>但是在$body中好像不能够通过post取值我后来想通过在2.php
    $sex1=$_POST["sex"];这样的方法取值  3.php中即写$sex1   但这样的话,也取不过来值checkbox的目前也不太清楚
      

  3.   

    你的php文件和html文件的编码方式一致吗
      

  4.   

    编码问题 全部设置成utf-8 (打开DW 编辑-》首选参数)设置新建文档是为utf-8  然后把你以上的 文件拷贝过 保存覆盖之前的文件 试一下看  
      

  5.   

    目前都是<meta http-equiv="Content-Type" content="text/html; charset=gb2312">这个为什么普通的那些能取到值,而checkbox/radio这类的不能直接取值呢?