2016-11-09 2 views
1

J'ai configuré mon Windows Server 2016 avec IIS pour récupérer mail() à partir de php et les envoyer à stmp.sendgrid.net.IIS SMTP avec SmartHost à SendGrid.Net

Pour tester ma configuration, je peux telnet mon localhost et envoyer des emails à partir de là sans aucun problème.

Cependant, si j'envoie l'e-mail via un mail() fonction php, SendGrid recevoir la demande, mais bloque avec cette erreur:

REASON550 5.7.1 [167.89.55.39 11] Our system has detected that this message is not RFC 5322 compliant: Multiple 'From' headers found. To reduce the amount of spam sent to Gmail, this message has been blocked. Please visit https://support.google.com/mail/?p=RfcMessageNonCompliant and review RFC 5322 specifications for more information. h190si13823586ite.62 - gsmtp 

Donc, l'erreur est parce qu'il est IIS d'envoyer le courrier électronique à SendGrid et à cause de cela, il est marqué comme un spam.

Ce qui pourrait causer cela?

+1

Il semble que IIS n'agit comme un relais et au lieu des en-têtes AJOUT DE. Est-il possible d'afficher le message MIME avant et après qu'il va à IIS? Ensuite, vous pouvez isoler le problème au code ou au serveur. – bwest

Répondre

2

Apparemment, vous avez besoin d'un en-tête détaillé lors de l'utilisation de PHP mail() et non lorsque vous utilisez telnet.

Pour PHP mail() à mininum:

$headers = "MIME-Version: 1.0" . "\r\n"; 
$headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n"; 
$headers .= "From: [email protected]" . "\r\n";