Foros del Web » Programando para Internet » PHP »

Ayuda con Mail

Estas en el tema de Ayuda con Mail en el foro de PHP en Foros del Web. Quiero implementar la función mail de php pero no me funciona. La he utilizado en un servidor Linux y funciona sin problemas, pero ahora quiero ...
  #1 (permalink)  
Antiguo 15/05/2004, 22:11
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Ayuda con Mail

Quiero implementar la función mail de php pero no me funciona.
La he utilizado en un servidor Linux y funciona sin problemas, pero ahora quiero ocuparla en un servidor Windows, pero no funka.
Tengo PHP 4, Apache y Windows 2000.
Debo instalar algun servidor de correo en el pc ?
Cuando edito en Dreamweaver un archivo php y se usa la función mail aparece marcada con color azul indicando que es una palabra reservada, pero en el pc con windows no aparece.

Espero su ayuda.
Gracias.

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #2 (permalink)  
Antiguo 16/05/2004, 09:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si, .. sería recomendable que instalases un servidor de correo SMTP en tu PC si es que W2000 no tienen ninguno ya que puedas usar (usas la versión "Server"? ..).

Pero también podrías usar el de tu ISP (si no requiere autentificación para enviar e-mail por sus servidores SMTP) en:

php.ini

SMTP = tuisp.mail.tal

(o como lo defina tu ISP)

Pero, OJO! .. que PHP por sí sólo con la función mail() no puede autentificarse si el servidor SMTP lo requiere (normalmente autentificación por POP antes de usar SMTP u otras).

Para eso tendrías que usar alguna classe de envio directo por SMTP de e-mail tipo:

PHP Mailer
http://phpmailer.sourceforge.net

Que es un sustituto a mail() de PHP con muchas más características y complementos que la original mail().

El uso de esa classe .. no te evitará tener que instalar un servidor SMTP en tu PC si no dispones de un ISP que te proporciene una cuenta de correo SMTP (ejemplo: si pretendes usar hotmail o sitios así .. que sólo son "webmail").

En las FAQ's de este foro (de las últimas) tienes una recomendación de un servidor SMTP para Windows freeware que al parecer es secilla su instalación .. Otros que puedes ver son:


QK SMTP server
ArgoSoft
MDaemon

Y si usas google seguro que veras más ...

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 16/05/2004, 11:52
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
En el foro se puso una FAQ (la penultima) de un servidor de correo para poder utilizar la función mail() de PHP.
Baje el miniRelay y lo instale, me aparece una ventana que dice miniRelay server y dice escuchando en 127.0.0.1 puerto 25
0 enviados, 0 esperando.
Hice un script para utilizar la función pero no me llega ningun correo.


Código PHP:
<?
mail
("[email protected]","asunto""mensaje"); 
echo 
"fin";
?>
creo que la función se usa asi.
Configure php.ini


[mail function]
; For Win32 only.
SMTP = 127.0.0.1

; For Win32 only.
;sendmail_from = [email protected][/email] // aca puse mi correo de hotmail



Espero que me entiendan y me puedan ayudar.
Gracias



Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #4 (permalink)  
Antiguo 16/05/2004, 11:56
 
Fecha de Ingreso: julio-2002
Ubicación: Rancagua - Chile
Mensajes: 494
Antigüedad: 15 años, 5 meses
Puntos: 0
Le saque el punto y coma ; de la linea
;sendmail_from = [email protected][/email] // aca puse mi correo de hotmail

y ahi funciono, pero miniRelay me arrojo errores, error al conectar mx1.hotmail.com

Debo cambiar la direccion puesta en sendmail_from ? o debo dejarla con punto y coma ; para que no se ejecute ?

Gracias

Salu2 !!!
__________________
AK.T.I.V.E.tm Live, Never DIE
  #5 (permalink)  
Antiguo 17/05/2004, 06:55
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
sendmail_from .. se usa si usas sendmail (de Linux) como MTA (transportador) ..

Si usas SMTP (y própio) .. usa todas las cabeceras HTTP de FROM: y demás de dicha función mail() (que es lo que equivaldría al senmail_from .. del php.ini)

Si tu servidor SMTP te arroja errores .. ya es problema entre tu servidor SMTP y donde pretenedes enviar el e-mail .. PHP ya cumplió su parte correctamente: "entregó el e-mail al MTA instalado y configurado en ese servidor (php.ini)" .. de que lo entregue o como lo haga ya no es problema de PHP.

Prueba con otras direcciones de correo y testea tu sevidor usando algún cliente de correo tipo Outlook por ejemplo (configurate una cuenta y pruebalo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 18/05/2004, 05:22
zpl
 
Fecha de Ingreso: marzo-2004
Mensajes: 91
Antigüedad: 13 años, 9 meses
Puntos: 1
Yo tambien

Yo tambien me e instalado el mini relay en el php.ini he puesto:

[mail function]
; For Win32 only.
SMTP = 127.0.0.1

; For Win32 only.
;sendmail_from = NULL

y en la pagina he puesto:

$sfrom="[email protected]******.net"; //cuenta que envia
$sdestinatario="$row4[email]"; //cuenta destino
$ssubject="Clave y Pass WEB ****"; //subject
$shtml="Gracias por registrarse en ****.USUARIO:$usur PASS:$pass. En la WEB podra cambiar el usuario y password.Un saludo"; //mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";
mail($sdestinatario,$ssubject,$shtml,$sheader);

pero me da error:

Warning: Failed to Receive in c:\phpdev\www\public\web3\insdaweb.php on line 120

La linea 120 es:

mail($sdestinatario,$ssubject,$shtml,$sheader);



Ademas el miniRelay se queda sin leer nada.

Gracias.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:06.