Foros del Web » Programando para Internet » PHP » Configuración PHP »

Configurar PHP para envío de correos desde localhost

Estas en el tema de Configurar PHP para envío de correos desde localhost en el foro de Configuración PHP en Foros del Web. Saludos nuevamente. Se que sobre esto hay mucho escrito pero por más que busco y rebusco información, todos resumen en los mismos parámetros y no ...
  #1 (permalink)  
Antiguo 12/05/2010, 09:33
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 9 meses
Puntos: 2
Pregunta Configurar PHP para envío de correos desde localhost

Saludos nuevamente.

Se que sobre esto hay mucho escrito pero por más que busco y rebusco información, todos resumen en los mismos parámetros y no me funciona; hace varios años lo conseguí configurando el archivo php.ini y me salían correos desde localhost en mi propio computador, sin embargo parece que algo falta y no alcanzo a saber dónde o cómo más hacer.

En el php.ini tengo lo siguiente:
[mail function]
; For Win32 only.
SMTP = mail.undominiopropio.com
smtp_port = 25

; For Win32 only.
sendmail_from = [email protected]

... y por lo que se esto es lo único que se puede modificar aquí; he leído algo sobre smtp_auth y smtp_pwd, y recuerdo quizás vagamente que algo así tal vez hice cuando me llegó a funcionar, pues lo que sí estoy seguro es que nunca monté un servidor SMTP en mi computador, así que eso es descartable como motivo del problema.

Hasta aquí lo "fácil", quería también preguntarles en relación a esto, tengo unas páginas php ejecutándose en un IIServer 2008, es un aplicativo y necesito enviar emails desde el mismo; el código es sencillo, un archivo donde configuro smtp, autenticación y demás sin problemas, pero al momento de enviar no hace nada ni reporta errores; este aplicativo está ejecutándose sobre un servidor Apache, pues se instala aparte y se ejecuta desde carpetas por fuera del IIServer2008, por lo que mi pregunta es: ¿ está mandando como servidor Apache o IIS ?, pienso que Apache, pero a la hora de enviar emails con otro código phpmailer fuera del aplicativo tampoco funciona y este sí me da error de SMTP, sin embargo los datos son correctos; PHP está instalado y quién manda sobre su salida, ¿ Apache o IIS ?.

Incluso me estaré equivocando en algún concepto sobre "quién manda", no soy novato en estos procesos pero necesito más luz brillando sobre mi oscuridad, y acá vine, por si alguien pueda ayudarme con esto, pues miro mucho por Internet pero todas las soluciones que pruebo ninguna me está funcionando hasta el momento.

Sinceramente preciso un intelecto superior que me asista. Muchas gracias por cuanto puedan hacer.
  #2 (permalink)  
Antiguo 12/05/2010, 09:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: Configurar PHP para envío de correos desde localhost

Tanto Apache como IIS son servidores Web, no son servidores de correo, las directivas que ves en el php.ini son para configurar el servidor SMTP que es el que necesitas para poder enviar correos.

IIS trae un servidor SMTP básico aunque lo tienes que instalar por fuera.

PHP NO soporta SMTPs que requieren autentificación, para eso tienes que usar una clase como Zend_Mail o PHPMailer.

Saludos.
  #3 (permalink)  
Antiguo 12/05/2010, 15:20
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Configurar PHP para envío de correos desde localhost

Saludos GatorV y gracias por la respuesta.

Entonces en el php.ini lo tengo todo como necesitaría, pero al final no se utiliza sino que esta aplicación va sobre rubyonrails, así que php aquí no hará nada, aunque la consulta la necesitaba para otras aplicaciones en que sí lo preciso y utilizo PHPMailer para los envíos. Me queda claro entonces lo que ya tenía igualmente determinado pero quería confirmar, que son servidores Web y no de Correo y por tanto no tienen nada que ver en autorizar el envío. Por cierto un código para que me indiquen cuál sería más correcto para envíos SMTP con la clase PHPMailer:

require("include/phpmailer/class.phpmailer.php");
$mail = new PHPMailer(); // Se instancia $mail
$mail->PluginDir = "include/phpmailer/";
$mail->IsHTML(true);
$mail->Mailer = "smtp";
$mail->SMTPAuth = "".$reqauthsmtp.""; // en "true"
$mail->Host = "".$hostsmtp.""; // "localhost"
$mail->Username = "".$usersmtp."";
$mail->Password = "".$passmtp."";
$mail->SMTPSecure = "ssl";
$mail->Port = 25;
$mail->Priority = 1;

... o precisa la línea adicional después del require anterior: require("include/phpmailer/class.smtp.php");

El IIS Server 2008 trae su servidor SMTP, al menos aparece la opción de configurar el servidor SMTP al cual ya le puse los datos de autenticación con una cuenta de pago que funciona correctamente.

El aplicativo instala su propio Apache y MySQL en una ruta como cuando se instala un programa en windows, del tipo "C:\archivos de programa\programaZ\", por lo que para acceder vía web se realizar por otro puerto no el 80 del IIS (en este caso tengo el 8090); la máquina no tiene instalado ni PHP ni MySQL sino en ese directorio con ese aplicativo, por lo que supongo entonces que es el SMTP del IIS el que toma la petición del aplicativo cuando necesita enviar un email, ¿ esto es correcto ?.

En resumen, hice pruebas de envíos y todavía no consigo sacar ningún email, ¿ qué podría hacer para testear si está funcionando el SMTP ?.

Muchas gracias.
  #4 (permalink)  
Antiguo 13/05/2010, 12:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: Configurar PHP para envío de correos desde localhost

Una de las posible razones por la que no recibes el email (fijate que no indique que no se envía, sino que no recibes) es que posiblemente estás enviando un email indicando (explicitamente o implicitamente) que de donde proviene no encaja con los datos de donde se produjo. Es decir, hotmail, yahoo, gmail, etc., verifican si la dirección que sale en el FROM es igual a la dirección que de donde el SMTP indica que se produjo. Si son iguales entonces los muestra, si no son iguales, entiende que es SPAM y evita la entrada de ese email y/o bloquea. Puede que se haya enviado correctamente, pero los hosting de email los bloquea por cuestiones de seguridad o los consideran spam. La mejor forma es ver el log del servidor SMTP y ver si envió o no el email.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 24/05/2010, 08:38
Avatar de cchaparro  
Fecha de Ingreso: febrero-2009
Ubicación: Medellín
Mensajes: 80
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Configurar PHP para envío de correos desde localhost

Saludos.

Bueno, la aplicación ya me funcionó, pero probar con php lo dejaré para más adelante.

El server no tenía instalado SMTP sino que tenía las opciones visibles pero no habilitadas; en realidad, el STMP es algo externo al servidor y no es necesario tener ninguno instalado ya que funciona todo adecuadamente; sin embargo, siempre da la impresión de que tiene algo que ver dentro del localhost que permita o impida el envío de emails. En este caso, configuré los datos de acceso a un servidor SMTP externo y funcionó todo correctamente, había un problema en la forma que esta aplicación "entendía" los valores de usuario, pwd, dominio, etc al autenticar, algo con las comillas simples y las dobles comillas.

Ya proseguiré con pruebas en PHP desde mi servidor local (que no es server 2008 sino WinXP 2003 SP2), pero lo que está claro es que el PHP.INI sólo pide el puerto SMTP y el dominio hacia el cual se dirige la petición (mail.dominio.com), adicionalmente el sendermail del mismo dominio; el resto ya lo hace el phpmailer, que aunque me ha dado siempre buenos resultados es posible que lo sustituya en futuros módulos por otro código que me facilitaron pero que todavía no he podido ensayar.

Agradezco toda la ayuda que me han tratado de brindar. Un saludito a todo el foro :).

Etiquetas: configurar, correos, localhost, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 00:51.