#php #linux #email #centos #pear
#php #linux #Адрес электронной почты #centos #pear
Вопрос:
Мой VPS работает под управлением CentOS 5.3. Я установил pear, Mail и Net_Mail. Когда я пытаюсь отправить почту, я получаю сообщение «Не удается найти класс для драйвера smtp». Я просмотрел Mail.php , обнаружил, что мне нужен ‘Mail/smtp.php — внутри моего каталога pear, который там есть. Я проверил каталог php include и сбросил все настройки в apache через chown. Я проверил chmod, и все они 644.
Мой код:
$from = "Admin <admin@myemail.com>";
$to = "New User <".$email.">";
$subject = "Welcome to MyEmail!";
$body = "Thanks for choosing <MyEmail>! We strive to provide 24/7 email service and support. If you have ANY issues, concerns, etc, please reply to this email, or simply compose a new one to: myemail@email.com !";
$host = "localhost";
$username = "username";
$password = "password";
$headers = array ('From' => $from,
'To' => $to,
'Subject' => $subject);
$smtp = Mail::factory('smtp',
array ('host' => $host,
'auth' => true,
'username' => $username,
'password' => $password));
if (PEAR::isError($smtp)) {
echo("<p>" . $smtp->getMessage() . "</p>");
}
$mail = $smtp->send($to, $headers, $body);
if (PEAR::isError($mail)) {
echo("<p>" . $mail->getMessage() . "</p>");
} else {
echo("<p>Message successfully sent!</p>");
}
Ответ №1:
Код, который вы дали, работает здесь, при добавлении require_once 'Mail.php';
в начале.
Какой хэш md5 имеет Mail/smtp.php
файл на вашем сервере? Содержит ли он class Mail_smtp
строку?
Вот оно: 479aa21ec86e63e629db646ed292b142
(через md5sum /usr/share/php/Mail/smtp.php
)
Комментарии:
1. Я имею дело с этой же ошибкой. Я проверил, что у меня добавлена строка «класс Mail_smtp». Любая помощь?
Ответ №2:
Я запустил эту ту же проблему, пользователь apache не смог прочитать Mail/smtp.php файл и не смог загрузить драйвер.
Проверьте путь pear с помощью pear config-get php_dir
Перейдите в этот каталог и проверьте, есть ли Mail.php есть ли, проверьте, есть ли в подкаталоге Mail/ с smtp.php файл внутри.
Убедитесь, что пользователь apache или пользователь php могут читать эти файлы: su -s /bin/sh apache -c "ls -la /[pathtopear]/Mail"
В моем случае почтовые и сетевые каталоги были доступны для чтения только root