PHP почта с примером gmail

#php

#php

Вопрос:

У меня есть следующий код, который, я верю, будет работать, но для этого требуется Mail.php . Я установил pear mail, но у меня нет примера Mail.php файл. У кого-нибудь есть пример? Мне нужна помощь в установке этого на место, чтобы код выполнялся. Спасибо

    require_once "Mail.php";

    $from = "<me1@gmail.com>";
    $to = "<me2@gmail.com>";
    $subject = "Test from iyearbook!";
    $body = "Hi,nnHow are you?";

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

    $headers = array ('From' => $from,
      'To' => $to,
      'Subject' => $subject);
    $smtp = Mail::factory('smtp',
      array ('host' => $host,
        'port' => $port,
        'auth' => true,
        'username' => $username,
        'password' => $password));

    $mail = $smtp->send($to, $headers, $body);

    if (PEAR::isError($mail)) {
      echo("<p>" . $mail->getMessage() . "</p>");
     } else {
      echo("<p>Message successfully sent!</p>");
     }

?>  <!-- end of php tag--->
  

Ответ №1:

Вам не нужно вручную писать Mail.php файл класса. Когда вы устанавливаете его через pear, он устанавливается сам. Все дело в пути включения, если путь включения задан правильно, то Mail.php будет доступна для использования.

Проверьте свой путь включения pear. Когда вам требуется Mail.php выдает ли это какую-либо ошибку? Включите отчет об ошибках и посмотрите. Скорее всего, ваш путь к включению в pear не задан

Попробуйте это тоже:

 <?php
require_once 'Mail.php';
var_dump(class_exists('Mail', false));
?> 
  

Чтобы проверить / исправить путь включения pear, проверьте это:
http://pear.php.net/manual/en/installation.checking.php

Комментарии:

1. Спасибо за ответ, как мне проверить включение pear. Извините за новый вопрос.

2. PHP Предупреждение: Запуск PHP: Не удается загрузить динамическую библиотеку ‘/usr/lib/php5/20090626 lfs /ffmpeg.so’ — /usr/lib/php5 /20090626 lfs / ffmpeg.so: не удается динамически загрузить исполняемый файл в Unknown в строке 0

3. PHP Предупреждение: Запуск PHP: Не удается загрузить динамическую библиотеку ‘/usr/lib/php5 /20090626 lfs /suhosin.so’ — /usr/lib /php5 /20090626 lfs / suhosin.so: не удается открыть общий объектный файл: нет такого файла или каталога в Unknown в строке 0 PHP Предупреждение: require_once

4. Игнорируйте их. Возможно, это не причина вашей текущей проблемы. Запустите мой фрагмент кода, посмотрите, что вы получите

5. Предупреждение PHP: require_once (Mail.php ): не удалось открыть поток: нет такого файла или каталога в /var/www/2testmail.php в строке 2 PHP Фатальная ошибка: require_once(): требуется неудачное открытие ‘Mail.php ‘ (include_path=’.:/usr/share/php:/usr/share/pear’) в /var/www/2testmail.php в строке 2

Ответ №2:

Чтобы упростить процесс отправки электронной почты, я в конечном итоге создал свою собственную функцию, что-то вроде pearMail ($ кому, $ тема, $ сообщение, $ заголовок, $ returnEmail);

 //To define $to , $subject , $html
//Optional defines  $sender1 , $sender2


//REQUIRED EXAMPLE
   // $to = '';               // Email address of the person the mail goes to
   // $subject = $subject;    // Subject for the email
   //  $html = '<html><body><p>This is a html message</p></body></html>';  // HTML version of the email
   // $filename = 'mail/contact.html  // and create an array called $params to replace in the email.


//POINT CORRECTLY
include('PEAR/Mail.php');
include('PEAR/mime.php');

//INFO UNCHANGABLE
$crlf = "n";
$headers = array('From' => $sender1, 'Return-Path' => $sender2, 'Subject' => $subject);
$mime = new Mail_mime($crlf);
$mime->setHTMLBody($html);
$body = $mime->get();
$headers = $mime->headers($headers);
$smtp_params["host"] = "ssl://smtp.gmail.com"; // SMTP host
$smtp_params["port"] = "465"; // SMTP host
$smtp_params["auth"] = true;               
$smtp_params["username"] = "YOUR@EMAIL.COM";        // authentication.
$smtp_params["password"] = 'YOURPASSWORD'; 
$mail =amp; Mail::factory("smtp", $smtp_params);
$result = $mail->send($to, $headers, $body);