Pregunta

Tengo 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 

de este guión:

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

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

sección de php.ini en el 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 =

(tenga en cuenta que "servidor" y "dominio" se refieren exactamente al servidor y al nombre de dominio reales)

En IIS, se está ejecutando SMTP.Bajo "Access" pestaña, "Relay" , el botón Seleccionar qué computadoras pueden transmitir a través de este servidor virtual está configurado en checkbox "only the list below" y en la lista está "127.0.0.1(xxx.xxx.xxx.xxx)" (x's representing actual server IP address).

El servidor está funcionando Windows Server 2003 Service Pack 2, completamente parcheado a partir del 1 de septiembre de 2008 a las 5 p.m.Supongo que está funcionando IIS7 (¿como revisar?).

¿Algunas ideas?

en respuesta a espo:Esta máquina está alojada en un centro de datos.No queremos usar una cuenta de Gmail (lo estamos haciendo, queremos alejarnos de eso).Windows Server 2003 viene con su propio servidor SMTP.

Actualizar:Según el consejo de Yaakov Ellis, eliminé todas las restricciones de retransmisión y agregué la IP del servidor a la lista permitida (usando el botón DNS inverso proporcionado) y todo comenzó a funcionar.

Gracias tanto a Espo como a Yaakov por ayudarme.

¿Fue útil?

Solución

Intente eliminar las restricciones de IP para la retransmisión en el servidor SMTP y ábralo a todas las retransmisiones.Si funciona cuando está configurado, entonces sabrás que el problema tiene que ver con las restricciones originales.En este caso, puede ser un problema de DNS o quizás haya incluido una dirección IP incorrecta.

Otros consejos

Está utilizando el servidor SMTP incorrecto.Si solo vas a enviar correos electrónicos a tu cuenta de Gmail, mira mi respuesta. aquí.

Si también necesita enviar correo electrónico a otras cuentas, solicite a su ISP sus detalles SMTP.

EDITAR:Creo que siempre es mejor usar el servidor SMTP del ISP, ya que (deberían) tener personas monitoreando las colas de correo, verificando vulnerabilidades y actualizando el software de correo.Si su empresa desarrolla aplicaciones web, casi siempre es mejor seguir con lo que usted hace y dejar que otras personas hagan lo suyo (por ejemplo, ejecutar servidores de correo).

Si por alguna razón todavía desea utilizar su servidor SMTP local, lo primero sería descartar la parte php.Intenta seguir KB153119 y luego verifique si hay errores en SMTPServer IISlog.

EDITAR2:Ese artículo de KB dice que es para intercambio, pero los mismos comandos se usan también para otros servidores SMTP (incluido IIS), así que intente ver si puede enviar correos electrónicos usando los ejemplos del artículo.

@Espo:Lo haré con respecto a KB153119.Gracias.

Acerca del servidor de correo:Te escucho.

Actualizaré cuando descubra más.

@Espo, el artículo en cuestión se relaciona con servidores Exchange, no con el servidor SMTP IIS7.0.

Del resumen:Este artículo describe cómo hacer telnet al puerto 25 en una computadora que ejecuta servicios de Protocolo simple de transferencia de correo (SMTP) para solucionar problemas de comunicación SMTP.La información de este artículo, incluidos los mensajes de error, solo se aplica a problemas al intentar resolver problemas de comunicación SMTP con servidores basados ​​en Microsoft Exchange y no está destinada a fines generales de solución de problemas.

Tuve el mismo problema, php 5 en el servidor iis6, 2003.PHP siempre fallaba al intentar utilizar mail().Logré que acepte correo de php cambiando las Restricciones de retransmisión de 'Solo la lista a continuación' (que está vacía de forma predeterminada) a 'Todos excepto la lista a continuación'.Las restricciones de retransmisión se pueden encontrar en la pestaña Acceso en las pantallas de propiedades de los servidores SMTP.Por supuesto, si el servidor está abierto a Internet, entonces uno tendría que ser más sensato con respecto a estas restricciones de retransmisión, pero en mi caso esto es en un servidor virtual en una caja de desarrollo.

Espero que ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top