J'ai installé Postfix sur mon serveur local (Ubuntu 16.04 traversait Virtualbox) et il semble impossible d'envoyer un email à gmail. Cela fonctionne avec d'autres boîtes aux lettres mais pas gmail.
Voici mon simple script PHP:
$headers ='From: "nom"<[email protected]>'."\n";
$headers .='Reply-To: [email protected]'."\n";
$headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';
$address = '[email protected]';
$test_mail = mail($address, 'My subject', 'My message', $headers);
if($test_mail == true)
{
echo 'Email sent';
}
else
{
echo 'Cannot send the email';
}
J'ai remarqué des messages d'erreur dans le fichier /var/mail/web
:
Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.7.1
Remote-MTA: dns; gmail-smtp-in.l.google.com
Diagnostic-Code: smtp; 550-5.7.1 [2a01:e35:2430:e090:a00:27ff:fe23:1da]
Our system has detected that 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR 550-5.7.1 records and authentication. Please review 550-5.7.1 https://support.google.com/mail/?p=IPv6AuthError for more information
550 5.7.1 . ay9si74475139wjc.120 - gsmtp
j'ai donc modifié la ligne suivante dans le fichier main.cf
:
inet_protocols = ipv4
Maintenant, il n'y a plus de messages d'erreur dans le fichier /var/mail/web
mais je ne reçois toujours pas les courriels dans ma boîte de messagerie gmail.
Avez-vous examiné https://support.google.com/mail/?p=IPv6AuthError comme suggéré par la réponse SMTP?
TL; DR: GMail s'attend à ce que certaines entrées de l'en-tête du courrier électronique et de l'enregistrement DNS vérifient la légitimité de l'expéditeur pour éviter le spam. Cela s'applique aux expéditeurs IPv4 et IPv6, même si les attentes spécifiques peuvent varier.
La façon de mettre ces entrées en place est trop large et sans rapport avec Ubuntu et donc hors sujet sur AskUbuntu. S'il vous plaît se référer à notre site soeur Server Fault pour de telles questions.