doulong4169 2014-09-03 07:23
浏览 58

PHP邮件使用SMTP从HTML表单获取信息

I've recently moved hosts and now with the contact form I have to use SMTP. I have been able with some help get something to work but am unable to retrieve the information I need from the form. The information I am trying to pull is name email phone and message. This is what I have been using

<?php

require "email.php";

$mail = new EMail;
$mail->Username = 'username.co.uk';
$mail->Password = 'mypassword';

$mail->SetFrom("no-reply@mywebsite.co.uk","no-reply@mywebsite.co.uk");  // Name is      optional
$mail->AddTo("no-reply@mywebsite.co.uk","no-reply@mywebsite.co.uk"); // Name is optional
$mail->Subject = "Hello World Again!";
$mail->Message = "Hello World!";

//Optional
$mail->ContentType = "text/html";          // Defaults to "text/plain; charset=iso-8859-1"
$mail->Headers['X-SomeHeader'] = 'abcde';  // Set some extra headers if required
$mail->ConnectTimeout = 30;  // Socket connect timeout (sec)
$mail->ResponseTimeout = 8;  // CMD response timeout (sec)
$success = $mail->Send();

?>

When I test this an email gets sent but of course only the "Hello World" text gets sent as I'm unsure where to put the necessary code to pull the info I need.

Prior to moving hosts and not needing SMTP I was using this script

<?php

//-----------------------------------------------------
//-----------------------------------------------------
$address= "myemail.co.uk";
//-----------------------------------------------------
//-----------------------------------------------------

$name = $_REQUEST["name"];
$email = $_REQUEST["email"];
$phone = $_REQUEST["phone"];
$message_content =        $_REQUEST["message"];
$mime_boundary = md5(time());

$headers = "From: $name   <$email>
";
$headers .= "Reply-To: $subject <$email>
";
$headers .= "MIME-Version: 1.0
";
$headers .= "Content-Type:   multipart/alternative;   boundary=\"$mime_boundary\"
";

$message = "--  $mime_boundary

";
$message .= "New email from the  Commons website: 


";
$message .= "Name: $name 

";
$message .= "Email: $email 

";
$message .= "Phone: $phone 

";
$message .= "Message:     $message_content 

";

$message .= "--$mime_boundary--

";

$mail_sent = mail($address,   $subject, $message, $headers);
echo $mail_sent ? "Success, mail   sent!" : "Mail failed";
?>

Thanks in advance

Kind Regards

Tim

  • 写回答

3条回答 默认 最新

  • duanchuaiwan0063 2014-09-03 08:32
    关注

    Did u try as this way???

     $message_str = str_replace("[first_name]", $fname, $message_str);
                                $message_str = str_replace("[last_name]", $lname, $message_str);
                                $message_str = str_replace("[site_name]", "RMS", $message_str);
    
    // Always set content-type when sending HTML email
                                $headers = "MIME-Version: 1.0" . "
    ";
                                $headers .= "Content-type:text/html;charset=UTF-8" . "
    ";
    
    // More headers
                                $headers .= 'From: <norply@rms.com>' . "
    ";
    
    
                                $subject = "activate account!";
                                if (mail("asd@sad.com", $subject, $message_str, $headers)) {
                                    echo"Email successfully sent!";
                                } else {
                                    echo"Email delivery failed…";
                                }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大