Установил PHPMailer через Composer на хостинге. Ошибок нет ни в консоли ChromeDevTools, ни в логах...
А письма не приходят на Email: ни только текст, ни текст с прикреплёнными файлами!
Вот расположение файлов и папок, относящихся к проблеме:
/ home / homexnmx / vendor / autoload.php
Папка vendor состоит из папок:
- composer с файлами внутри
- phpmailer / phpmailer с папками и файлами внутри;
- autoload.php
/ home / homexnmx / composer.json
/ home / homexnmx / composer.lock
/ home / homexnmx / public_html / composer.phar - (раньше был здесь)
/ home / homexnmx / composer.phar / public_html - (теперь переставил сюда, но роли никакой это не сыграло)
/ home / homexnmx / public_html / php.ini
/ home / homexnmx / public_html / tmp_name/ uploads - (uploads - для загрузки файлов из формы)
/ home / homexnmx / public_html / tmp_name / submit.php - (submit.php - обработчик HTML-формы)
/ home / homexnmx / public_html / php / httpd.conf - (php_value include_path ".:/opt/alt/php72/usr/share/pear";)
/ home / homexnmx / public_html / adaptive.php - (HTML-форма)
/ home / homexnmx / public_html / JS / adaptive.js - (js-код отправки HTML-формы)
Вот обработчик submit.php
use PHPMailer\PHPMailer\PHPMailer; // создайте класс PHPMailer
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
require '/home/homexnmx/vendor/autoload.php';
function sendmail($to, $nameto, $subject, $message, $file) {
$from = "отправитель@gmail.com"; // адрес отправителя
$namefrom = "Webbuilding"; // имя отправителя
$mail = new PHPMailer();
$mail->SMTPDebug = 0;
$mail->CharSet = 'UTF-8';
$mail->isSMTP();
$mail->SMTPAuth = true;
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = $from;
$mail->Password = "******"; // пароль Email отправителя
$mail->SMTPSecure = "ssl";
$mail->setFrom($from, $namefrom);
$mail->addCC($from, $namefrom);
$subject = 'Из модальной формы - adaptive.php';
$mail->Subject = $subject;
$mail->isHTML();
$message = "Имя: ".$_POST['user_name']."\r\nEmail: ".$from."\r\nWebsite: ".$_POST['user_website']."\r\nPhone: ".$_POST['user_phone']."\r\nIP: ".$_SERVER['REMOTE_ADDR']."\r\n\r\n Сообщение:\r\n\r\n ".$_POST['user_comment'];
$mail->Body = $message;
// Прикрипление файлов к письму
if (!empty($file['name'][0])) {
for ($ct = 0; $ct < count($file['tmp_name']); $ct++) {
$uploadfile = tempnam(sys_get_temp_dir(), sha1($file['name'][$ct]));
$filename = $file['name'][$ct];
if (move_uploaded_file($file['tmp_name'][$ct], $uploadfile)) {
$mail->addAttachment($uploadfile, $filename);
$rfile[] = "Файл $filename прикреплён";
} else {
$rfile[] = "Не удалось прикрепить файл $filename";
}
}
}
$mail->AltBody = $file;
$to = 'получатель@mail.com'; // адрес получателя
$nameto = 'Homexnmx'; // имя получателя
$mail->addAddress($to, $nameto);
//return $mail->send();
if ( $mail->send() ) {
echo $resalt = '<b>Your message sent!</b><br><br><pre><b> <a href="https://site.com" style="text-decoration:none;"> ⬅ Back to page</a></b></pre>';
}
else {
echo $resalt = 'Mailer Error';
}
}
А вот Ajax отправки формы adaptive.js
var resalt = document.querySelector('.resalt');
$("#modal-form").submit(function(e){
e.preventDefault();
if(document.getElementById('modal-form').user_name.value == '' || document.getElementById('modal-form').user_email.value == '' || document.getElementById('modal-form').user_website.value == '' || document.getElementById('modal-form').user_phone.value == ''){
valid = false;
return valid;
}
$.ajax({
type: "POST",
url: "https://site.com/tmp_name/submit.php",
data: $(this).serialize(),
success: function(data){
resalt = '<b>JS Your message sent!</b>';
$('.block-popup').hide('');
$('.note').css('display', 'block');
$('.resalt').html(data);
},
error: function(jqXHR, exception) {
console.log(jqXHR);
console.log(exception);
resalt = 'Mailer Error';
$('.block-popup').hide('');
$('.note').css('display', 'block');
$('.resalt').html(data);
}
});
return;
});
А вот и сама HTML-форма отправки, на всякий случай adaptive.php
<form action="https://site.com/tmp_name/submit.php" method="POST" id="modal-form" name="feedback_form" class="contact_form" enctype="multipart/form-data">
<ul>
<li>
<h2>Contact Us</h2>
<span class="required_notification">* Denotes Required Field</span>
</li>
<li>
<label>Name:</label>
<input type="text" name="user_name" placeholder="Username" required pattern="[A-z, А-я]{1,15}" id="name" />
<span class="form_hint">"Text"</span>
</li>
<li>
<label>Email:</label>
<input type="email" name="user_email" placeholder="raid-gir@example.com" required id="email" />
<span class="form_hint">"name@example.com"</span>
</li>
<li>
<label>Website:</label>
<input type="url" name="user_website" placeholder="http://raidgir.com" required pattern="(http|https)://.+" id="website" />
<span class="form_hint">"http://example.com"</span>
</li>
<li>
<label>Phone:</label>
<input type="tel" name="user_phone" placeholder="+1 212 123 45 67" required pattern="^((8|\+7)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$" id="phone" />
<span class="form_hint">"+1 212 123 45 67"</span>
</li>
<li>
<label>File:</label>
<input type="hidden" name="max_file_size" value="10000000" />
<input type="file" name="userfile[]" value="1" class="upload_files" multiple="yes" /> <!-- onchange="handleFiles(this.files)" -->
</li>
<li>
<label>Message:</label>
<textarea name="user_comment" cols="40" rows="6" required pattern="[A-z, А-я, 0-9]{1,15}" id="message"></textarea>
<span class="form_hint mes">"Text"</span>
</li>
</ul>
<button type="submit" id="btnSend" name="sendMail" class="submit">Submit Form</button>
</form>
В чём может быть проблема? Может кто подскажет? Благодарю Вас за внимание!