Код php:
<?php
require 'phpmailer/PHPMailer.php';
require 'phpmailer/SMTP.php';
require 'phpmailer/Exception.php';
require_once 'db/db.php';
$url = ((!empty($_SERVER['HTTPS'])) ? 'https' : 'http') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$parts = parse_url($url);
parse_str($parts['query'], $query);
if (isset($query["imgtoken"])) {
$getUsers = $connect->prepare("SELECT * FROM chtotamc_price.img WHERE `hash` LIKE ':token' ");
$getUsers->execute(array(':token' => $query["imgtoken"]));
$results = $getUsers->fetchAll();
}
// Настройки PHPMailer
$mail = new PHPMailer\PHPMailer\PHPMailer();
try {
$mail->isSMTP();
$mail->CharSet = "UTF-8";
$mail->SMTPAuth = true;
$mail->Debugoutput = function($str, $level) {$GLOBALS['status'][] = $str;};
// Настройки вашей почты
$mail->Host = 'smtp.mail.ru'; // SMTP сервера вашей почты
$mail->Username = '********'; // Логин на почте
$mail->Password = '********'; // Пароль на почте
$mail->SMTPSecure = 'SSL';
$mail->Port = 465;
$mail->setFrom('******, 'Подарочные наборы'); // Адрес самой почты и имя отправителя
for ($i=0; $i < 2; $i++) {
if ($i == 0) {
$name = "Заказ";
$email = "sdas@gmail.com";
$text = "
Привет! Ваш подарочный набор уже собирают и совсем скоро он окажется у вас. Как только набор поступит на почту — мы свяжемся с вами в мессенджерах (найдем вас по указанному номеру) и отправим трек-номер посылки, чтобы вы могли отследить ее путешествие.\n
<br>
Если у вас возникли любые вопросы, пожалуйста, свяжитесь с нами любым удобным способом:<br>
Telegtam: asdasda<br>
Instagram: asdasd/<br>
WhatsApp: +2131237<br>
Viber: +21312312<br>
sdas@gmail.com<br>
<br>
На всякий случай перепроверьте данные, которые вы указали в вашем заказе. Если что-то изменилось, свяжитесь с нами в течение двух часов: Имя: ". $query['name'] . ". Номер: ". $query["tel"] . ". Адресс: ". $query['address'] . ". Email: ". $query['email'];
// Формирование самого письма
$title = "Спасибо за заказ!";
$body = "
<h2>Спасибо за заказ!</h2>
<b>Имя:</b> $name<br>
<b>Почта:</b> $email<br><br>
<b>Сообщение:</b><br>$text
";
$mail->addAddress($query["email"]);
$mail->isHTML(true);
$mail->Subject = $title;
$mail->Body = $body;
$mail->send();
} else {
// Переменные, которые отправляет пользователь
$name = "Заказ";
$email = "sadas@gmail.com";
$text = "Футболка: " . $query["tshirt"] . ". Размер: " . $query["tshirtsz"] . ". Сумка: " . $query["bag"] . ". Кружка : " . $query["cap"] . ". Гирлянда: " . $query["garlend"] . ". Паспорт: " . $query["pass"] . ". Открытка: " . $query["card"] . ". Шоколад: " . $query["chocolate"] . ". Коробка: " . $query["box"]. ". Имя: ". $query['name'] . ". Номер: ". $query['tel'] . ". Адресс: ". $query['address'] . ". Email: ". $query['email'] . ". Сообщение: ". $query['msg'];
// Формирование самого письма
$title = "Данные заказа";
$body = "
<h2>Данные заказа</h2>
<b>Имя:</b> $name<br>
<b>Почта:</b> $email<br><br>
<b>Сообщение:</b><br>$text
";
if (isset($query["imgtoken"])) {
foreach($results as $item){
$img = base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $item["img"]));
$mail->AddStringAttachment($img, $item["id"].".png", "base64", "image/png");
}
}
$mail->addAddress('asdasd@gmail.com');
$mail->isHTML(true);
$mail->Subject = $title;
$mail->Body = $body;
$mail->send();
}
}
} catch (Exception $e) {
$result = "error";
$status = "Сообщение не было отправлено. Причина ошибки: {$mail->ErrorInfo}";
}
// Отображение результата
echo json_encode(["result" => $result, "resultfile" => $rfile, "status" => $status]);
Почта не отправляется на хостинге(очень долгая загрузка, а после 504 ошибка), но на локальном сервере(mamP) все отправляется, ошибок никаких нету.
Мне нужно отправить 2 письма, одно из них должно быть с картинками, в бд хранятся base64.