Comencé a comprender y no pude encontrar más de una publicación completa en la Internet rusa que revelaría el problema y ayudaría a resolver todos los problemas.
Presento a su atención, recopilado de diversas fuentes, método probado y utilizado de configuración del servidor para el envío correcto de correos electrónicos sendmail.
Sistema: Ubuntu 20.06
Servicio de correo: Yandex
1. Instalación de Sendmail
Si por alguna razón no se instaló. Realizar la instalación y configuración básicas
sudo apt-get install php-mail sudo apt-get install sendmail sudo sendmailconfig
Regla php.ini
En lugar de noreply@site.ru, escriba un correo al que se enviarán los informes (encabezado Return-Path :).
sendmail_path = "/usr/sbin/sendmail -t -f noreply@site.ru -i"
El encabezado Return-Path: es un encabezado importante a los ojos de los servicios de correo electrónico.
Si no lo configura, el encabezado será algo así como "Ruta de retorno: <noreply@localhost.localdomain>".
Es muy deseable que el valor del encabezado siempre coincida con el nombre de dominio desde el que se envía el mensaje, independientemente del valor del encabezado From:, de lo contrario, puede enviarse a Spam o rechazarse por completo.
2. Configuración de registros DNS
Necesitamos configurar registros SPF, DMARC, DKIM.
Qué es responsable de lo que no voy a pintar. Runet tiene una gran cantidad de instrucciones.
Si también usa algún servicio de correo, ellos tienen sus propias instrucciones detalladas para la configuración.
A lo que debe prestar atención es a que la dirección IP del servidor está registrada en el SPF.
v=spf1 ip4:ip_server include:_spf.yandex.net ~all
A continuación, debe solicitar un registro rDNS inverso (registro PTR) de su proveedor de alojamiento de DNS .
Vincula tu dominio a la dirección IP del servidor.
Como regla general, el proveedor lo instala por su cuenta a pedido.
4. Cambiar el nombre de host
Establezca el nombre de host igual a nuestro nombre de dominio:
sudo hostnamectl set-hostname site.ru
5. Edite el archivo sendmail.mc
Vaya al archivo /etc/mail/sendmail.mc
Necesitamos configurar los encabezados "Received: from" y "Received: by". Son importantes para determinar el nivel de confianza en el servidor que envía el correo electrónico.
Agregue las siguientes líneas al final del archivo antes de MAILER_DEFINITIONS
FEATURE(allmasquerade) FEATURE(masquerade_envelope) FEATURE(local_no_masquerade) MASQUERADE_AS(`site.ru')
Y al final del archivo:
define(`MAIL_HUB', `site.ru.')dnl define(`LOCAL_RELAY', `site.ru.')dnl
6. Comprobación de la configuración de apache y firewall
sudo ufw allow 25 sudo nano /etc/apache2/envvars
Estamos buscando líneas y reemplazamos www-data con el usuario actual bajo el cual apache está ejecutando
export APACHE_RUN_USER = www-data
export APACHE_RUN_GROUP = www-data
7. Actualice la configuración y reinicie sendmail
sudo sendmailconfig sudo service sendmail restart sudo systemctl restart apache2