@liststal

КАК Переписать форму отправки сообщений на SMTP?

Здравствуйте, суть в том, что нужно сделать что бы $mail->From = ''; и $mail->addAddress(''); заполнялись из БД.
Если заполнить в ручную, то всё работает.
require 'PHPMailerAutoload.php';

$mail = new PHPMailer;

$mail->isSMTP();// Настройте почтовую программу на использование SMTP
$mail->Host = 'ssl://mail.host';  // Укажите SMTP-сервер
$mail->Port = 465;
$mail->SMTPAuth = true;  // Включить аутентификацию SMTP
$mail->Username = '******';  // SMTP username
$mail->Password = '*******'; // SMTP password
$mail->SMTPSecure = 'ssl';  // Включить шифрование, «ssl» 

$mail->CharSet = 'UTF-8';
$mail->From = '';
$mail->addAddress('');  // Добавить получателя

$mail->Subject = 'Вот тема';
$mail->Body    = 'Это текст сообщения HTML <b>выделен жирным шрифтом!</b>';
if(!$mail->send()) {
    echo 'Сообщение не может быть отправлено.';
    echo 'Ошибка почтовой программы: ' . $mail->ErrorInfo;
} else {
    echo 'Сообщение отправлено';
}

Как в старом коде всё работает
$id=intval($_REQUEST['id']);
if(isset($id))
	{
	$r=mysqli_query($link,"SELECT * FROM book WHERE id='".$id."'");
	$rr=mysqli_fetch_array($r);
	$email=$rr['email'];
	$zag=$rr['zag'];
	$them='Ответ на сообщение N '.$id.': '.$zag;
	}
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
Вместо mysqli_query() лучше используйте PDO (примеры)

По проблеме. Не совсем понятно, что вы хотите добавить для PHPMailer, в From и addAddress у вас пустые строки.
Если я правильно понял, то примерно так:

require 'PHPMailerAutoload.php';

$id = intval($_REQUEST['id']);
if (isset($id)) {
    $r = mysqli_query($link,"SELECT * FROM book WHERE id='".$id."'");
    $rr = mysqli_fetch_array($r);
    
    // замените на ваши поля
    $recipient = $rr['recipient'];
    $sender = $rr['sender'];

    $mail = new PHPMailer;

    $mail->isSMTP();// Настройте почтовую программу на использование SMTP
    $mail->Host = 'ssl://mail.host';  // Укажите SMTP-сервер
    $mail->Port = 465;
    $mail->SMTPAuth = true;  // Включить аутентификацию SMTP
    $mail->Username = '******';  // SMTP username
    $mail->Password = '*******'; // SMTP password
    $mail->SMTPSecure = 'ssl';  // Включить шифрование, «ssl»

    $mail->CharSet = 'UTF-8';
    $mail->From = $sender;
    $mail->addAddress($recipient);  // Добавить получателя

    $mail->Subject = 'Вот тема';
    $mail->Body    = 'Это текст сообщения HTML <b>выделен жирным шрифтом!</b>';
    if(!$mail->send()) {
        echo 'Сообщение не может быть отправлено.';
        echo 'Ошибка почтовой программы: ' . $mail->ErrorInfo;
    } else {
        echo 'Сообщение отправлено';
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы