Обновите почтовый код PHP для использования SMTP вместо функции php mail () - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть файл кода php, используемый на веб-сайте для обработки отправки электронных писем из веб-приложения с помощью функции mail () в php.

Я решил использовать SMTP вместо того, чтобы вы проверяли, используются ли переменные старого кода на новом SMTP

Вот код

<?php

// please only use the fields thata re present in the html form itself for now we have listed all possible ones

//// NEW CODE ////
require '../mail/PHPMailerAutoload.php';


$mail = new PHPMailer;

//$mail->SMTPDebug = 3;                               // Enable verbose debug output

$mail->isSMTP();                                      // Set mailer to use SMTP
$mail->Host = 'smtp.domain.com';  // Specify main and backup SMTP servers
$mail->SMTPAuth = true;                               // Enable SMTP authentication
$mail->Username = 'username';                 // SMTP username
$mail->Password = 'password';                           // SMTP password
$mail->SMTPSecure = 'SSL';                            // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465;                                    // TCP port to connect to

$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);

$mail->setFrom('hello@example.com', 'Name');
$mail->addAddress('maher@domain.com', 'Location');     // Add a recipient                              // Name is optional
$mail->addReplyTo('hello@example.com', 'Name');
//$mail->addCC('cc@example.com');
//$mail->addBCC('bcc@example.com');

//$mail->addAttachment('/var/tmp/file.tar.gz');         // Add attachments
//$mail->addAttachment('/tmp/image.jpg', 'new.jpg');    // Optional name
$mail->isHTML(true);                                  // Set email format to HTML

$mail->Subject = 'Here is the subject';
$mail->Body    = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}

//// OLD CODE ////

$to = "maher@domain.com";
if (isset($_POST)){

    $subject = "location system email";

    if ($_POST['fullname'] ! =''){
        $message = "Fullname: " . $_POST['fullname'];
    } else {
        $message = "First name: " . $_POST['fname'];
        $message = "Last name: " . $_POST['lname'];
    }
    $message .= "<br>Phone: " . $_POST['Phone'];
    $message .= "<br>Website: " . $_POST['website'];
    $message .= "<br>Email: " . $_POST['email'];
    $message .= "<br>Message: " . $_POST['message'];

};

$headers  = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type: text/html; charset=utf-8" . "\r\n";
$headers .= "From: " . $_POST['fullname'] . " <" . $_POST['email'] . ">". "\r\n";

if(mail($to, $subject, $message, $headers) ) {
    echo "ok";
} else {
    echo "error";
}

Я хочу использовать старые переменные кода и применить их для работы с новым кодом SMTP.

Большое спасибо.

1 Ответ

0 голосов
/ 19 ноября 2018

Вопрос не очень понятен, но из того, что я понял, есть решение:)

Если вы хотите заменить функцию mail () по умолчанию на PHPMAILER:

  1. Затем вы должны сначала установить библиотеку phpmailer в корневой каталог (или в любое другое место, но при включении / обращении к файлам в вашем коде, пожалуйста, убедитесь, что путь указан правильно) вашей кодовой базы.

  2. После того, как это установлено, вы переходите к коду, в котором вызывается функция mail ().Там замените функцию mail () на пример кода, которым вы поделились выше.

  3. Затем замените следующую переменную в коде:

    $ mail-> Host = 'smtp.domain.com';// Укажите основной и резервный SMTP-серверы

    $ mail-> Username = 'username';// SMTP username

    $ mail-> Password = 'password';// пароль SMTP

    $ mail-> Port = 465;

Используйте библиотеку кода для отправки электронной почты на основе API на случай, если вы столкнетесь с проблемами с SMTP.

...