электронная почта — почтовый сервер SMTP Ошибка переполнения стека

при использовании скрипта я получаю следующее:
Неустранимая ошибка: вызов неопределенного метода PEAR_Error :: send ()

это мой сценарий:

if ($_POST['start']){
$from = $_POST['from'];`enter code here`
$name = $_POST['fromnm'];
$msg = $_POST['msg'];
$sender = explode("\r\n", $_POST['to']);
$headers .= 'From:' . $name . "<" . $from . ">"  . "\n";
$headers .= 'Reply-To:' . $from . "\n";
foreach($sender as $to) {

$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '[email protected]',
'password' => '12563254'
));

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

if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<script>alert("Message Sent!")');
}
}
}

0

Решение

Вам не нужен foreach. Попробуйте этот код

 if ($_POST['start']){
$from = $_POST['from'];
$name = $_POST['fromnm'];
$msg = $_POST['msg'];
$to = $_POST['to'];
$headers = array(
'From' => $from,
'To' => $to,
'Subject' => $name
);$smtp = Mail::factory('smtp', array(
'host' => 'ssl://smtp.gmail.com',
'port' => '465',
'auth' => true,
'username' => '[email protected]',
'password' => '12563254'
));

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

if (PEAR::isError($mail)) {
echo('<p>' . $mail->getMessage() . '</p>');
} else {
echo('<script>alert("Message Sent!")');
}

}

если вы хотите отправить нескольким людям отдельную переменную «to» с «запятой»

0

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

Возможно, произошел сбой при входе. Это означает, что вы получили объект ошибки, а не почтовый объект.

Проверьте на наличие ошибок и перед отправкой:

$smtp = Mail::factory(...)
if (PEAR::isError($smtp)) {
echo('<p>' . $mail->getMessage() . 'and' .$mail->getUserInfo(). '</p>');
}

$mail = $smtp->send($to, $headers, $msg);
...
0

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