Question

Je reçois ce problème:

PHP Warning: mail() [function.mail]: SMTP server response: 550 5.7.1 Unable to relay for chris.mahan@gmail.com in c:\inetpub\wwwroot\mailtest.php on line 12 

à partir de ce script:

<?php
$to = "chris.mahan@gmail.com";
$subject = "test";
$body = "this is a test";

if (mail($to, $subject, $body)){
    echo "mail sent";
}
else {
    echo "problem";
}
?>

la section de php.ini sur le serveur:

[mail function]
; For Win32 only.
SMTP = server.domain.com; for Win32 only
smtp_port = 25

; For Win32 only.
sendmail_from = support@domain.com
; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

(à noter que "serveur" et "domaine" se réfèrent précisément à celle du serveur et nom de domaine)

Dans IIS, le serveur SMTP est en cours d'exécution.En vertu de "Access" onglet, "Relay" bouton, Sélectionnez les ordinateurs qui peuvent relais par le biais de ce serveur virtuel est défini à checkbox "only the list below" et la liste est "127.0.0.1(xxx.xxx.xxx.xxx)" (x's representing actual server IP address).

Le serveur est en cours d'exécution Windows Server 2003 Service Pack 2, entièrement corrigés de 5 H 1er Sept 2008.Je suppose qu'il est en cours d'exécution IIS7 (comment le vérifier?).

Des idées?

En reponse à Espo:Cette machine est hébergé dans un datacenter.Nous ne voulons pas utiliser un compte gmail (le faisaient, veulent s'en débarrasser).Windows server 2003 est livré avec son propre serveur SMTP.

Mise à jour:Par Yaakov Ellis conseils, j'ai laissé tomber toutes les restrictions de relais et a ajouté l'adresse IP du serveur à la liste autorisée (en utilisant le DNS inverse bouton prévu) et la chose a commencé à travailler.

Grâce à deux Espo et Yaakov pour m'aider à sortir.

Était-ce utile?

La solution

Essayez de supprimer les restrictions IP pour le Relais dans le serveur SMTP, et une ouverture à tous les relais.Si cela fonctionne lorsqu'il est activé, alors vous savez que le problème a à voir avec l'original restrictions.Dans ce cas, il peut être un problème de DNS, ou peut-être vous avez eu la mauvaise adresse IP de la liste.

Autres conseils

Vous utilisez le mauvais serveur SMTP.Si vous vous allez seulement à envoyer des e-mails de votre compte gmail compte, ont un coup d'oeil à ma réponse ici.

Si vous aussi vous avez besoin pour envoyer des courriels à d'autres comptes, demandez à votre FAI pour votre SMTP-détails.

EDIT:Je pense qu'il est toujours préférable d'utiliser le fournisseur de services internet SMTP-server qu'ils (doivent) avoir des personnes de la surveillance de la messagerie files d'attente, la vérification pour les exploits et la mise à jour de la messagerie-logiciel.Si votre activité est en développement web-applications, il est presque toujours préférable de s'en tenir à ce que vous faites, et laisser les autres faire leur travail (par exemple, l'exécution de serveurs d'email).

Si vous avez encore pour quelque raison que voulez utiliser, vous serveur SMTP local, la première chose serait d'écarter le php-partie.Essayez suivantes KB153119 et puis vérifiez que vous SMTPServer IISlog pour les erreurs.

EDIT2:Que KO-l'article dit que c'est pour l'échange, mais les mêmes commandes sont utilisées pour d'autres SMTP serveurs (y compris IIS), donc s'il vous plaît essayer et voir si vous pouvez envoyer des mails en utilisant les exemples de l'article.

@Espo:Je vais le faire re KB153119.Merci.

Sur le serveur de messagerie:Je vous entends.

Je vais mettre à jour quand j'en découvrir plus.

@Espo, l'article en question se rapporte à des serveurs Exchange, pas IIS7.0 serveur SMTP.

Le résumé:Cet article décrit comment telnet sur le port 25 sur un ordinateur qui exécute Simple Mail Transfer Protocol (SMTP) services pour résoudre les problèmes de communication SMTP.Les informations dans le présent article, y compris les messages d'erreur, s'applique uniquement aux problèmes lorsque vous tentez de résoudre les problèmes de communication SMTP avec Microsoft Exchange et serveurs n'est pas prévu pour le général à des fins de dépannage.

J'ai eu le même problème, php 5 sur iis6, 2003 server.Php toujours échoué lorsque vous essayez d'utiliser mail().J'ai réussi à obtenir d'accepter le courrier de php en changeant les Restrictions de Relais de 'la liste ci-dessous' (qui est vide par défaut) à "Tous sauf la liste ci-dessous".Les restrictions de relais peut être trouvé dans l'onglet Accès dans les serveurs smtp de l'écran de propriétés.Bien sûr, si le serveur est ouvert à l'internet, alors on aurait pu être plus sensible au sujet de ces restrictions de relais, mais dans mon cas c'est sur un serveur virtuel sur une boîte de dev.

espérons que cela aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top