PHP通过gmail smtp使用PEAR发送电子邮件

时间:2012-05-22 22:17:17

标签: php email smtp pear

在争夺梨的正确位置后,我的代码不会产生任何错误。 但它不会发送电子邮件。电子邮件正文是从一个表单生成的,该表单首先将数据输入到mysql数据库中,然后将相同的数据通过电子邮件发送给然后将数据用于任何内容的人。我已经在这个论坛上阅读了大量的问题和答案(这是最好的),我写的大部分代码都受到了这个论坛的启发。 Gmail帐户有效且密码正确。任何帮助或建议将非常感谢。

梨和梨邮件安装在服务器上,似乎正在工作(至少没有创建任何错误) 这是我的代码:

   //Email process code


   ini_set('display_errors','on');
   error_reporting(E_ALL);
   /*
   require_once 'System.php';
  if(class_exists('System')===true) {
  echo 'PEAR is installed!';
  } else {
  echo 'PEAR is not installed :(';
   }
  */

  set_include_path('/home/surfcup/php/');
  require_once "Mail.php";


  $from = "<me@gmail.com>";
  $ToEmail = "<new@apdapalabs.com>"; 


  $EmailSubject = 'Hotel Registration Form'; 

  $host ="ssl://smtp.gmail.com";
  $port ="465";
  $username = "myAccount@gmail.com";
  $password =   "password";


  $headers = array ('From' => $from, 'To'=> $ToEmail, 'Subject'=> $EmailSubject);

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

  $MESSAGE_BODY = "Event: ".$Event."\n"; 
  $MESSAGE_BODY .= "Name: ".$realname."\n"; 
  $MESSAGE_BODY .= "Age Group: ".$Age."\n"; 
  $MESSAGE_BODY .= "Sex: ".$Sex."\n"; 
  $MESSAGE_BODY .= "Contact Name: ".$Contact_Name."\n"; 
  $MESSAGE_BODY .= "Contact Email: ".$Contact_Email."\n"; 
  $MESSAGE_BODY .= "Phone: ".$Phone."\n"; 
  $MESSAGE_BODY .= "Hotel Name: ".$Hotel_Name."\n"; 
  $MESSAGE_BODY .= "No Rooms: ".$No_Rooms."\n"; 
  $MESSAGE_BODY .= "Rate: ".$Rate."\n"; 
  $MESSAGE_BODY .= "Check In Date: ".$Check_In."\n"; 
  $MESSAGE_BODY .= "Check Out Date: ".$Check_Out."\n"; 
  $MESSAGE_BODY .= "Additional Info: ".$Add_Info."\n"; 



  $mail = $smtp->send($ToEmail, $headers, $MESSAGE_BODY);


        if (PEAR::isError($mail)){
            echo("<p>" . $mail->getMessage . "</p>");
            echo("\n");
            echo("<p>" . $mail->getDebugInfo . "</p>");

        }

1 个答案:

答案 0 :(得分:0)

我见过的关于通过GMAIL发送的大多数错误都是在您自己的服务器上未启用OpenSSL。检查php.ini中是否启用了扩展名

(另外,如果失败,你可以错误检查“smtp”。)