无法使用php中的邮件功能发送电子邮件

时间:2016-03-14 04:53:53

标签: php

我的公司移交了一个由其他人开发的现有项目。我必须解决其中的一些问题,但在其中一个问题中我遇到了问题。电子邮件不是从网站发送的。我不确定为什么会这样。代码只是简单的php电子邮件功能,它发送电子邮件。但它仍然无法正常工作 任何人都可以猜到我错过了什么?

$to = "test@gmail.com";
$subject = "Property Posted";

$message="TestMessage"
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$form="www.xxxxxxxxxxxxxxxxxxxxx.com";

// More headers    
$headers .= 'From: <xyz@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";

$checkmail = mail($to,$subject,$message,$headers,$form);
if($checkmail) {
    echo "email sent";
} else {
    echo failed"
}

它始终击中else,但我不知道为什么。

4 个答案:

答案 0 :(得分:0)

您没有定义$to$subject。请查看以下代码:

 <?php
    $to      = 'nobody@example.com';
    $subject = 'the subject';
    $message = 'hello';
    $headers = 'From: webmaster@example.com' . "\r\n" .
               'Reply-To: webmaster@example.com' . "\r\n" .
               'X-Mailer: PHP/' . phpversion();

    mail($to, $subject, $message, $headers);
  ?>

答案 1 :(得分:0)

通过在命令行上执行以下命令来测试服务器邮件服务。

error_reporting(E_ALL);
ini_set('display_errors',1);

$to = "test@gmail.com";
$subject = "Property Posted";
$message="TestMessage";
$headers = "From: webmaster@example.com" . "\r\n" .
"CC: somebodyelse@example.com";

mail($to,$subject,$message,$headers);

然后尝试下面的代码。

var arr1 = [100, 200, 100, 300, 600, 200];
var arr2 = [1, 2, 3, 4, 5, 6];

答案 2 :(得分:0)

有时候电子邮件会转到垃圾邮件,所以另一种可能性是通过pear安装邮件和net_smtp。

pear install Mail
pear install Net_Smtp

然后您可以将带有SMTP身份验证的邮件发送到另一台服务器:

require_once "Mail.php";

$body = "messages in body part\n";
$subject = "Subject of email message";
$mail_to = "abc@gmail.com";
$mail_from = "efg@gmail.com";

//SMTP Configuration
$host = "smtp.server.com""; // Or IP address";
$username = "username";
$password = "password";

$smtp = Mail::factory('smtp',
 array (
 'host' => $host,
 'auth' => true,
 'username' => $username,
 'password' => $password
));

$headers = array (
 'From' => $mail_from,
 'To' => $mail_to,
 'Subject' => $subject
);
$mail = $smtp->send($mail_to, $headers, $body);

if (PEAR::isError($mail)) {
 echo "Cound not seend the message";
}

答案 3 :(得分:-1)

使用PHP的mail()函数是可能的。请记住,邮件功能在本地服务器中不起作用

<?php
 $to      = 'nobody@example.com';
 $subject = 'the subject';
 $message = 'hello';
 $headers = 'From: abc@example.com' . "\r\n" .
       'Reply-To: abc@example.com' . "\r\n" .
       'X-Mailer: PHP/' . phpversion();

 mail($to, $subject, $message, $headers);
 ?>