Как мога да задам правилния подател в PHP с mail()? SMTP
Ако Вашият уебсайт изпраща имейли с PHP функцията mail(), писмата излизат без вход в системата. Техническият подател (Return-Path) тогава често е системният акаунт на Вашия пакет, а не Вашият собствен адрес. Поради това SPF и DMARC не съвпадат правилно, писмата по-често попадат в спам, а съобщенията за грешки отиват в пощенска кутия, която никой не проверява.
Затова настройте уебсайта си да изпраща имейли чрез SMTP с вход, точно както Вашата имейл програма. Тогава подател е Вашият собствен адрес и писмата се третират като обикновена поща от Вашия домейн.
Данни за SMTP
- Сървър: Вашето домейн име (yourdomain.bg), ако уебсайтът Ви се хоства при WebOké, или името на сървъра на Вашия пакет, например linux2023.webawere.nl. Ще го намерите в Моят WebOké в Моите продукти, в колоната Сървър.
- Порт: 465 със SSL/TLS или 587 със STARTTLS.
- Потребителско име: пълният имейл адрес на пощенска кутия, за предпочитане отделна пощенска кутия за уебсайта, например website@yourdomain.bg.
- Парола: паролата на тази пощенска кутия.
Като подател (From) използвайте адреса на тази пощенска кутия или пренасочване (forwarder), което препраща към нея. Адреса на посетител никога не поставяйте в From, а в Reply-To. В противен случай сървърът ще откаже писмото или то ще попадне в спам.
Пример с PHPMailer
Често използвана библиотека е PHPMailer. Инсталирате я с Composer (composer require phpmailer/phpmailer).
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
require 'vendor/autoload.php';
$mail = new PHPMailer(true);
try {
// SMTP-instellingen
$mail->isSMTP();
$mail->Host = 'yourdomain.bg';
$mail->Port = 465;
$mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
$mail->SMTPAuth = true;
$mail->Username = 'website@yourdomain.bg';
$mail->Password = 'wachtwoord';
$mail->CharSet = 'UTF-8';
// Afzender, antwoordadres en ontvanger
$mail->setFrom('website@yourdomain.bg', 'Website yourdomain.bg');
$mail->addReplyTo('bezoeker@example.net');
$mail->addAddress('info@yourdomain.bg');
// Bericht
$mail->Subject = 'Testbericht';
$mail->Body = 'Dit is een testmail verzonden via SMTP.';
$mail->send();
echo 'E-mail verzonden';
} catch (Exception $e) {
echo 'Versturen mislukt: ' . $mail->ErrorInfo;
}
Използвате ли WordPress или WooCommerce? Тогава можете да уредите това с SMTP плъгин, вижте Надеждно изпращане на имейли от WordPress и WooCommerce чрез SMTP. Как да защитите формуляр от спам, ще прочетете в Формуляр за контакт на Вашия уебсайт: изпращане на полетата по имейл и предотвратяване на спам.
Искате ли да научите повече? Запишете се за безплатния курс Имейл в ред, урок 7.3 Имейли от Вашия уебсайт и формуляри.
Искате ли да научите повече? Запишете се за безплатния курс по WordPress, урок 9.1 Имейли от WordPress.
