2017-09-04 114 views
-1
<?php 

require 'PHPMailerAutoload.php'; 
//echo !extension_loaded('openssl')?"Not Available":"Available <br/>"; 

$name = $_POST['username']; 
$email = $_POST['email']; 
$number = $_POST['phone']; 
$profession = $_POST['profession']; 

$to = '[email protected]'; 
$subject = 'user registration'; 
$phone = "phone number:".$number; 

$message = "client details:"."\n"."Name:".$name."\n"."email:".$email."\n"."phone number:".$number."\n"."profession:".$profession; 

$headers = "From:".$email; 

$mail = new PHPMailer; 

//$mail->SMTPDebug = 3;        

$mail->isSMTP();          
$mail->Host = 'ssl://smtp.gmail.com';  
$mail->SMTPAuth = true;        
$mail->Username = '[email protected]';      
$mail->Password = 'password';       
$mail->SMTPSecure = 'ssl'; 
$mail->Port = 465; 

$mail->setFrom($email, $name); 

$mail->Subject = $subject; 
$mail->Body = $message; 

if($mail->send()) { 
    header("Location: ../../thankyouNew.html"); 
} 
else { 
    header("Location: ../../somethingWrong.html"); 
} 

?>PHP的mail()函数使用不工作的PHPMailer

代码执行else块,我想将邮件发送到[email protected]和邮件后返回用户的thankyou.html页函数执行。我是新的这个PHP和我非常感谢帮助提前谢谢你。 忘记下面的行........

+1

什么是在您的PHP错误日志? – flauntster

+0

尝试格式化你的问题。我们很难读懂它。你不工作是什么意思,它会给你一个错误还是什么? –

+0

尝试检查您的错误日志以查看发生了什么错误。在开始'<?php'后,在当前代码中添加'error_reporting(E_ALL); ini_set('display_errors',1);'并再次运行代码,看看是否有东西。 –

回答

1

你实际上并没有指定你想发送邮件的地方。您需要使用addAddress()方法,如下所示。此方法需要一个参数,但您可以提供两个 - 与您的方法具有相同的方式;首先是目标地址,然后是可选的显示名称。

$mail = new PHPMailer; 

// ... 

$mail->setFrom($email, $name); 
$mail->addAddress($to); // Add this method to specify a recipient 
$mail->Subject = $subject; 
$mail->Body = $message; 
if($mail->send()) { 
    // ... 
} 
// ... 
+0

我做到了,但仍然没有收到邮件,我需要在服务器之前配置任何东西 – vihar

+0

好吧,那么问题不是一个明显的问题。所以,我们不会来回猜测 - 而是从PHPMailer那里得到实际的错误信息。在'else'块中添加'echo $ mail-> ErrorInfo;'。如果没有给你任何东西,在创建对象之后设置'$ mail-> SMTPDebug = 2;'并添加'$ mail-> Debugoutput = function($ str,$ level){echo“De-bug:$级别;消息:$ str“; };在else块中 – Qirel