Я не могу отправить письмо через php на Elastix

Я пытаюсь отправить электронную почту через php с Elastix.
Когда я запускаю php как ssh, он работает, но когда я пытаюсь сделать это в Интернете (PHP), я ничего не отправляю.
Это мой код:

#!/usr/bin/php -q
<?php
echo shell_exec('whoami');
shell_exec("sudo sendEmail -f [email protected] -t [email protected] -u Subject -m Message-s example.com.mx -o tls=yes -xu [email protected] -xp password");
?>

Я думаю, что-то о разрешениях, потому что когда я запускаю его в командной строке, вывод:

корень

и письмо отправлено. Но когда я пытаюсь открыть файл через Интернет, я ничего не отправляю, вывод следующий:

Астерикс

Поэтому я попытался дать права доступа Asteriks root, но это не работает :(.
В другой попытке я загружаю библиотеку PHPMailer, но не отправляю письмо. Я пытаюсь сделать это на Windows с Xampp, и он работает и является той же версией PHP (5.1.6).

Это мой код PHPMailer:

<?PHP
$mail = new PHPMailer;

$mail->isSMTP();
$mail->Host = 'example.com';
$mail->SMTPAuth = true;
$mail->Username = '[email protected]';
$mail->Password = 'password';
$mail->SMTPSecure = 'ssl';
$mail->Port = 465;
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);

$mail->From = '[email protected]';
$mail->FromName = 'Name';
$mail->addAddress('[email protected]');

$mail->WordWrap = 50;
$mail->isHTML(true);

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
if(!$mail->send()) {

echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
?>

Он работает на Windows, но не на Elastix
Любая помощь?

3

Решение

Итак, наконец-то я смог отправлять электронные письма через PHP.
Библиотека PHPMailer не работает должным образом на PHP 5.1.6
Таким образом, я делаю несколько шансов на это, так как ошибка, которая (наконец-то) дала мне, была:

Ошибка разбора: синтаксическая ошибка, неожиданный T_FUNCTION в
var / www / html /[…]/ class.phpmailer.php в строке 3040

Поэтому я случайно добавил код class.phpmailer.php к этому:

/**
* Clear queued addresses of given kind.
* @access protected
* @param string $kind 'to', 'cc', or 'bcc'
* @return void
*/
protected function clearQueuedAddresses($kind)
{
//if (version_compare(PHP_VERSION, '5.3.0', '<')) {
$RecipientsQueue = $this->RecipientsQueue;
foreach ($RecipientsQueue as $address => $params) {
if ($params[0] == $kind) {
unset($this->RecipientsQueue[$address]);
}
}
//} else {
//    $this->RecipientsQueue = array_filter(
//        $this->RecipientsQueue,
//        function ($params) use ($kind) {
//            return $params[0] != $kind;
//        });
//}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]