Foros del Web » Programando para Internet » PHP »

urgente: La función mail me da error.

Estas en el tema de urgente: La función mail me da error. en el foro de PHP en Foros del Web. Hola a todos Espero que alguien pueda ayudarme. Al enviar e-mails con php, me sale un error. Creo que la cuestión es que , aunque ...
  #1 (permalink)  
Antiguo 29/11/2004, 06:55
Isa
 
Fecha de Ingreso: octubre-2001
Mensajes: 21
Antigüedad: 23 años, 1 mes
Puntos: 0
urgente: La función mail me da error.

Hola a todos
Espero que alguien pueda ayudarme. Al enviar e-mails con php, me sale un error. Creo que la cuestión es que , aunque tengo el sendmail en el servidor, el servicio smtp no está instalado. En la lista de serviciso de windows no me aparece. Hace falta que éste aparezca como un servicio para que pueda utilizarse sendmail y así enviar e-mail?s o¿ el sendmail no lo utiliza?

Si es necesario, ¿puedo instalar el smtp ahora? HE leido por ahí que se instala por defecto con windows y que a la hora de la instalación puede elegir ponerlo o no. Si no lo eliges ¿no se puede instalar sin volver a instalar windows?.

muchas gracias por vuestro tiempo y ayuda :)

Isa.

el error que me da es este: Warning: mail(): "sendmail_from" not set in php.ini or custom "From:" header missing in C:\apache\www.\www.ruta.es\ruta.php

gracias
  #2 (permalink)  
Antiguo 29/11/2004, 09:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
El error te dice textualmente lo que sucede.

La configuración de php.ini (sendmail_from) o bien que no indicastes el FROM como parte del 4° parámetro (cabeceras) de la función mail()

Lo que requiere PHP para enviar un e-mail es un "MTA" (Mail Transfer Agent) sea un servidor SMTP directo .. o bien sendmail (de Linux también disponible en windows creo).

No sé que versión de Windows usas .. pero en Windows creo que 2000 Server en adelante tienes el "Exange" que es su servidor SMTP .. pero podrías usar cualquier otro más básico (e igual de efectivo) como por ejemplo QK SMTP Server o algún otro.

Un saludo,
  #3 (permalink)  
Antiguo 29/11/2004, 10:37
Isa
 
Fecha de Ingreso: octubre-2001
Mensajes: 21
Antigüedad: 23 años, 1 mes
Puntos: 0
Gracias Cluster...

Estoy usando windows 2000 con apache y no me funciona en éste, tengo configurado php.ini como está indicado para estos casos, smtp=localhost y send_mail="el email del administrador" y tengo instalado sendmail, pero no sé si tendrá que ver con el directorio en el que tiene que estar ubicado éste.

En otro windows 2000 tengo IIS 5.0, sendmail y php.ini configurado como recomiendan (en los dos windows está configurado igual), en éste sí funciona. No sé si tendrá que ver que en este servidor tengo instalado también el exchange como servidor de correo y el que usa es éste. En el de apache no tengo exchange, no puedo ponerlo.

¿Tendrá que ver que el de apache no funcione por la ubicación del sendmail? ¿Dónde debe ir? Necesito que me funcione en el servidor con apache porque es el que tenemos destinado a éste fin. En el otro, aunque el php funciona,da muchos errores y va muy lento... es por el tema de tiempo de ejecución que auqnue he ajustado en parámetro de mil maneras posibles..ufff siempre va mal. No sé si tendrá que ver que con el IIS el php no funciona de manera óptima...el caso es que necesito poder usar la funcióm mail correctamente en el servidor con apache, ya que en este funciona todo perfectamente salvo lo de envío de e-mails.

¿Por favor, me podrías orientar un poco?

muchísismas gracias :)

saludos


Isa.
  #4 (permalink)  
Antiguo 29/11/2004, 10:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
El exange es tu servidor SMTP de correo .. sendmail tampoco es un servidor de e-mail .. es un "MTA" .. requiere de un "servidor STMP" para que el e-mail se envie definitivamente.

Te hacía mención a otro servidor SMTP para windows .. un tal "QK SMTP server" por qué es muyyy simple de intalar y no consume recursos apenas .. pruebalo o instala también el Exchange .. de hecho con sólo el Exchange indicando "localshot" como SMTP= en tu php.ini sobra .. Pero si quieres configurar:

PHP -> sendmail_path = .. la ruta donde esté instalado .. y a su vez sendmail para que use Exange .. tal vez te funcione ..

Un saludo,
  #5 (permalink)  
Antiguo 30/11/2004, 02:21
Isa
 
Fecha de Ingreso: octubre-2001
Mensajes: 21
Antigüedad: 23 años, 1 mes
Puntos: 0
otra pregunta...

el QK SMTP server es sólo para windows o también sirve para linux? gracias :)

saludos
  #6 (permalink)  
Antiguo 30/11/2004, 04:47
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 20 años, 5 meses
Puntos: 2
Es solamente para windows pero con linux ya viene el sendmail para que quieres otro servidor smtp?
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #7 (permalink)  
Antiguo 30/11/2004, 06:13
Isa
 
Fecha de Ingreso: octubre-2001
Mensajes: 21
Antigüedad: 23 años, 1 mes
Puntos: 0
Cita:
Iniciado por living
Es solamente para windows pero con linux ya viene el sendmail para que quieres otro servidor smtp?

Segun Cluster sendmail no es servidor smtp, si no que sólo es MTA y parece que para enviar e-mails con php hace falta el servidor smtp. O sea: sólo con sendmail no haces nada. ...por lo que he acabado por entender aquí y según mi experiencia estos dias con los servidores ;). El caso es que un compañero está acabando otro servidor en linux y lo preguntaba por eso pero no importa, imagino que en linux se podrá instalar otro sevidor de correo con el que se podrá usar esta función perfectamente. Gracias por todo
saludos

:)
  #8 (permalink)  
Antiguo 30/11/2004, 06:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Pero .. es que PHP como ya te comenté puede usar sendmail directamente si indicas las ruta donde está instalado en tu servidor (sea en windows o linux).

También puedes usar servidores SMTP externos a tu servidor (ejemplo del tuyo al de tu compañero) tan sólo apuntando la IP del mismo (de ese servidor que corra el servidor SMTP) en:

SMTP = .... aquí su IP o domino ..

Sólo recuerda que PHP no permite autentifiarse para usar SMTP (para enviar el e-mail) así que si requieres de algo de seguridad (normal hoy por hoy con tanto SPAM que lo requieras) .. tendrás que usar otra forma para enviar el e-mail desde PHP .. es decir, no usar la función mail() sino enviarlo por "sockets" directo. Por ejemplo usando:

PHP Mailer
http://phpmailer.sourceforge.net

Eso no evita que tengas que tener igualemnte instalado en tu servidor o bien usar otro servidor SMTP externo. Pero, la ventaja es que puede "autentificarse" si lo requieres .. cosa que mail() de PHP original no puede.

Un saludo,
  #9 (permalink)  
Antiguo 30/11/2004, 06:34
Isa
 
Fecha de Ingreso: octubre-2001
Mensajes: 21
Antigüedad: 23 años, 1 mes
Puntos: 0
Lo de poner en smtp la ip o dominio del servidor en el que sí funciona ( el otro, en le que sí funciona bien la función mail) ya lo he probado y no da resultado....

Asi que no sé.... :( por eso pensé que lo que pasa es que es necesario el servidor smtp. Además es lo que te entendí...

El caso es que no entendí que me dijeras que indicando dónde está el sendmail debería funcionar usando sólo éste, lo probaré a ver qué tal, espero que así vaya todo bien. Gracias de nuevo ;)
  #10 (permalink)  
Antiguo 01/12/2004, 07:12
Isa
 
Fecha de Ingreso: octubre-2001
Mensajes: 21
Antigüedad: 23 años, 1 mes
Puntos: 0
no me funciona.

pues na. que no me funciona poniendo la ruta del sendmail
:(
saludos
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 22:22.