Pergunta

Eu estou ficando este problema:

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 

a partir deste 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";
}
?>

seção de php.ini no servidor:

[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 =

(note que o "servidor" e "domínio" referem-se exatamente ao real do servidor e nome de domínio)

No IIS, o SMTP está em execução.Sob "Access" guia "Relay" botão, Selecione que computador pode retransmitir através deste servidor virtual é definido como checkbox "only the list below" e a lista é "127.0.0.1(xxx.xxx.xxx.xxx)" (x's representing actual server IP address).

O servidor está em execução Windows Server 2003 Service Pack 2, totalmente patched como de 5 horas de 1º de Setembro de 2008.Eu suponho que ele está em execução IIS7 (como medir?).

Qualquer idéias?

Em resposta a Espo:Esta máquina é hospedado em um datacenter.Nós não queremos usar uma conta do gmail (estavam fazendo isso, pretende afastar-se de que).O Windows server 2003 vem com seu próprio servidor SMTP.

Atualização:Por Yaakov Ellis conselhos, eu deixei cair todas as restrições de retransmissão e adicionado o IP do servidor para a lista de permitidos (usando o DNS reverso botão fornecido) e a coisa começou a trabalhar.

Graças a Espo e Yaakov para me ajudando.

Foi útil?

Solução

Tente remover as restrições de IP para a transmissão em que o servidor de SMTP e, abrindo-o a todos os relés.Se ele funciona quando esta estiver definida, então você sabe que o problema tem a ver com o original restrições.Neste caso, pode ser um problema de DNS, ou talvez você tinha errado o endereço IP listado.

Outras dicas

Você está usando errado servidor SMTP.Se você está indo só para enviar e-mails para o gmail-conta, de uma olhada na minha resposta aqui.

Se você também precisar enviar e-mails para outras contas, pedir-lhe PROVEDOR para a sua SMTP detalhes.

EDITAR:Eu acho que é sempre melhor usar o ISP SMTP-server como eles devem ter pessoas que acompanham o email filas, verificando a existência de explorações e atualizar o e-mail de software.Se o negócio é o desenvolvimento de aplicativos web é quase sempre melhor ficar com o que você faz, e deixar que outras pessoas façam suas coisas (por exemplo, executando servidores de email).

Se, ainda assim, por algum motivo, deseja usar o servidor SMTP local, a primeira coisa seria para afastar o php-parte.Tente seguir KB153119 e, em seguida, verifique você SMTPServer IISlog para erros.

EDIT2:Que base de dados de conhecimento artigo, diz que é para troca, mas mesmo comandos são usados para outros SMTP-servidores (incluindo IIS), bem como, então, por favor, tente e veja se você pode enviar e-mails usando os exemplos do artigo.

@Espo:Eu vou fazer o que re KB153119.Obrigado.

Sobre o servidor de correio:Eu ouço você.

Eu vou atualizar quando eu descobrir mais.

@Espo, o artigo em questão refere-se aos servidores do Exchange, não IIS7.0 servidor SMTP.

A partir do sumário:Este artigo descreve como telnet para a porta 25 em um computador que executa o Simple Mail Transfer Protocol (SMTP) de serviços para solucionar problemas de comunicação SMTP.As informações neste artigo, incluindo mensagens de erro se aplica somente a problemas ao tentar resolver problemas de comunicação SMTP do Microsoft Exchange baseada em servidores e não se destina para fins de solução de problemas gerais.

Eu tive o mesmo problema, php 5 no iis6, 2003 server.Php sempre falha quando tenta utilizar o mail().Eu consegui obtê-lo de aceitar correio do php alterando as Restrições de Retransmissão de 'Somente a lista abaixo (que é vazio por padrão) para 'Todos exceto a lista abaixo' .As restrições de retransmissão pode ser encontrado na guia Acesso a servidores de smtp propriedades telas.É claro que se o servidor está aberta para a internet, em seguida, um teria que ser mais sensato sobre estes retransmissão de restrições, mas no meu caso isso é em um servidor virtual em um dev caixa.

espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top