Foros del Web » Programando para Internet » PHP »

Warning: mail() [function.mail]:

Estas en el tema de Warning: mail() [function.mail]: en el foro de PHP en Foros del Web. Hola gente... tengo este simple codigo: <?php mail("[email protected]", "Probando Ando :=)", "Hola Hola!!"); ?> y este error: Warning: mail() [function.mail]: "sendmail_from" not set in php.ini ...
  #1 (permalink)  
Antiguo 09/08/2006, 12:04
Avatar de Mono-R  
Fecha de Ingreso: abril-2006
Ubicación: Bs. As. Argentina
Mensajes: 155
Antigüedad: 11 años, 7 meses
Puntos: 1
Pregunta Warning: mail() [function.mail]:

Hola gente...

tengo este simple codigo:
<?php
mail("[email protected]", "Probando Ando :=)", "Hola Hola!!");
?>


y este error:
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\AppServ\www\sitio_cics\sendmi.php on line 2

Mi duda... la funcion mail (sendmail) de mi php esta configurada (php.ini), ya que tambien en mi servidor (http://localhost/) tengo un formulario de contacto que funciona OK,
pero... porque no funciona esto tan simple????


Alguien podria orientarme?
__________________
:-) ... cuanto más intento aprender descubro lo poco que se ... :pensando:

Última edición por Mono-R; 09/08/2006 a las 12:49
  #2 (permalink)  
Antiguo 09/08/2006, 15:40
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 6 meses
Puntos: 3
Cita:
tengo este simple codigo:
<?php
mail("[email protected]", "Probando Ando :=)", "Hola Hola!!");
?>
Probando andas y a simple vista no se ve ningun problema como:
- [email protected] como email
- Probando Ando como asunto del email
- Hola Hola!! como contenido del email

Tienes tu smtp en la misma pc para dejar localhost en tu smtp: localhost de tu php.ini

Cita:
Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom
sendmail_from = [email protected] me parece que lo lo que se refiere es que no tiene nada, agrega hay tu email
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #3 (permalink)  
Antiguo 09/08/2006, 21:10
Avatar de Mono-R  
Fecha de Ingreso: abril-2006
Ubicación: Bs. As. Argentina
Mensajes: 155
Antigüedad: 11 años, 7 meses
Puntos: 1
Cita:
Iniciado por the_scorpion Ver Mensaje

Tienes tu smtp en la misma pc para dejar localhost en tu smtp: localhost de tu php.ini


sendmail_from = [email protected] me parece que lo lo que se refiere es que no tiene nada, agrega hay tu email
Hola the scorpion...
El smtp esta en el "localhost" (miniRelay) y asi esta configurado en el php.ini
El "sendmail_from =" tiene mi correo
Cuando utilizo un formulario de envío desde un sitio en mi localhost la funcion mail junto con el smtp envian el correo correctamente, pero cuando utilizo el sitado codigo básico de php...
<?php
mail("[email protected]", "Probando Ando :=)", "Hola Hola!!");
?>
me da este error!!!

Se te ocurre alguna otra causa???
Gracias por tu tiempo
__________________
:-) ... cuanto más intento aprender descubro lo poco que se ... :pensando:
  #4 (permalink)  
Antiguo 10/08/2006, 03:24
 
Fecha de Ingreso: junio-2004
Mensajes: 266
Antigüedad: 13 años, 5 meses
Puntos: 8
Te falta indicar el From, con cabeceras o indicarlo en php.ini

http://www.idiota.es/php/function.mail.html
  #5 (permalink)  
Antiguo 10/08/2006, 07:48
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 6 meses
Puntos: 3
Hola

Cita:
kurroman
Te falta indicar el From, con cabeceras o indicarlo en php.ini
http://www.idiota.es/php/function.mail.html
lo tiene puesto ya en el sitio que le diste tiene un ejemplo algo parecido al de él.
Código PHP:
<?php
// El mensaje
$mensaje "Linea 1\nLinea 2\nLinea 3";

// En caso de que cualquier linea tenga mas de 70 caracteres, habria
// que usar wordwrap()
$mensaje wordwrap($mensaje70);

// Enviar
mail('[email protected]''Mi Asunto'$mensaje);
?>
Es un email real.

podrias postear tu sendmail_from = [email protected] de tu php.ini porque a la verdad que no entiendo como esa cosita tan simple te de error.
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #6 (permalink)  
Antiguo 10/08/2006, 09:03
Avatar de Mono-R  
Fecha de Ingreso: abril-2006
Ubicación: Bs. As. Argentina
Mensajes: 155
Antigüedad: 11 años, 7 meses
Puntos: 1
Cita:
Iniciado por the_scorpion Ver Mensaje
Hola

Es un email real.

podrias postear tu sendmail_from = [email protected] de tu php.ini porque a la verdad que no entiendo como esa cosita tan simple te de error.

Hola the scorpion, gracias por tu tiempo...
mira, la dire "mono -r" era de ejemplo nada mas, pero te paso todo tal cual, ok? :
Aquí esta mi PHP.ini completo
(ups... exede los caracteres permitidos lo recorto)

[PHP]


;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;

[Date]
; Defines the default timezone used by the date functions
;date.timezone =

[Syslog]
; Whether or not to define the various syslog variables (e.g. $LOG_PID,
; $LOG_CRON, etc.). Turning it off is a good idea performance-wise. In
; runtime, you can define these variables by calling define_syslog_variables().
define_syslog_variables = Off

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = [email protected]

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path =

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

[SQL]
sql.safe_mode = Off

[ODBC]
;odbc.default_db = Not yet implemented
;odbc.default_user = Not yet implemented
;odbc.default_pw = Not yet implemented

; Allow or prevent persistent links.
odbc.allow_persistent = On

; Check that a connection is still valid before reuse.
odbc.check_persistent = On

; Maximum number of persistent links. -1 means no limit.
odbc.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
odbc.max_links = -1

; Handling of LONG fields. Returns number of bytes to variables. 0 means
; passthru.
odbc.defaultlrl = 4096

; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char.
; See the documentation on odbc_binmode and odbc_longreadlen for an explanation
; of uodbc.defaultlrl and uodbc.defaultbinmode
odbc.defaultbinmode = 1

[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
mysql.max_links = -1

; Default port number for mysql_connect(). If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
mysql.default_port =

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user =

; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password =

; Maximum time (in secondes) for connect timeout. -1 means no limit
mysql.connect_timeout = 60

; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
; SQL-Errors will be displayed.
mysql.trace_mode = Off

[MySQLi]

; Maximum number of links. -1 means no limit.
mysqli.max_links = -1

; Default port number for mysqli_connect(). If unset, mysqli_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order). Win32 will only look
; at MYSQL_PORT.
mysqli.default_port = 3306

; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
mysqli.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysqli.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
mysqli.default_user =

; Default password for mysqli_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw")
; and reveal this password! And of course, any users with read access to this
; file will be able to reveal the password as well.
mysqli.default_pw =

; Allow or prevent reconnect
mysqli.reconnect = Off

[mSQL]
; Allow or prevent persistent links.
msql.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
msql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
msql.max_links = -1

[PostgresSQL]
; Allow or prevent persistent links.
pgsql.allow_persistent = On

; Detect broken persistent links always with pg_pconnect().
; Auto reset feature requires a little overheads.
pgsql.auto_reset_persistent = Off

; Maximum number of persistent links. -1 means no limit.
pgsql.max_persistent = -1

; Maximum number of links (persistent+non persistent). -1 means no limit.
pgsql.max_links = -1

; Ignore PostgreSQL backends Notice message or not.
; Notice message logging require a little overheads.
pgsql.ignore_notice = 0

; Log PostgreSQL backends Noitce message or not.
; Unless pgsql.ignore_notice=0, module cannot log notice message.
pgsql.log_notice = 0

[Sybase]
; Allow or prevent persistent links.
sybase.allow_persistent = On

; Maximum number of persistent links. -1 means no limit.
sybase.max_persistent = -1

; Maximum number of links (persistent + non-persistent). -1 means no limit.
sybase.max_links = -1

;sybase.interface_file = "/usr/sybase/interfaces"

; Minimum error severity to display.
sybase.min_error_severity = 10

; Minimum message severity to display.
sybase.min_message_severity = 10

; Compatability mode with old versions of PHP 3.0.
; If on, this will cause PHP to automatically assign types to results according
; to their Sybase type, instead of treating them all as strings. This
; compatibility mode will probably not stay around forever, so try applying
; whatever necessary changes to your code, and turn it off.
sybase.compatability_mode = Off

;
;
************************************************** ********


[mail function]
; For Win32 only.
SMTP = localhost ""servidor real (Apache)"" ""SMTP (minirelay)"""
smtp_port = 25

; For Win32 only.
;sendmail_from = [email protected] ""correo real""

Vuelvo a comentarte que cuando utilizo un formulario con un codigo mas complejo si funciona, el formulario esta en un .swf y envia las variebles al aprchivo send.php en la raiz del sitio, aquí el el send.php:


<?php
if(isset($_POST["nombre"]) && isset($_POST["compania"]) && isset($_POST["cargo"]) && isset($_POST["telefono"]) && isset($_POST["mail"]) && isset($_POST["consulta"]) ){
$fecha = date("D-M-y H:i");
$mymail = "[email protected]";
$subject = "Desde CICSOILS.com...";
$contenido = "ESCRIBIO: " .$_POST["nombre"]."\n\n";
$contenido .= "EMPRESA: " .$_POST["compania"]."\n\n";
$contenido .= "CARGO: " .$_POST["cargo"]."\n\n";
$contenido .= "TELEFONO: " .$_POST["telefono"]."\n\n";
$contenido .= "E-MAIL: " .$_POST["mail"]."\n\n";
$contenido .= "CONSULTA: " .$_POST["consulta"]."\n\n\n\n";
$contenido .= "El mensaje se escribio el ".$fecha." hrs.";
$header = "From:".$_POST["mail"]."\nReply-To:".$_POST["mail"]."\n";
$header .= "X-Mailer:PHP/".phpversion()."\n";
$header .= "Mime-Version: 1.0\n";
$header .= "Content-Type: text/plain";
mail($mymail, $subject, utf8_decode($contenido) ,$header);
echo "&estatus=ok&";
}
?>

Bueno, creo haberte pasodo bastante no te quiero atomizar... jajaj
Saludos
__________________
:-) ... cuanto más intento aprender descubro lo poco que se ... :pensando:
  #7 (permalink)  
Antiguo 10/08/2006, 09:33
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 6 meses
Puntos: 3
Cita:
; For Win32 only.
;sendmail_from = [email protected]
Digo:
- tu ;sendmail_from = [email protected] está desabilitado quita el punto y coma ";".
- postea resultado
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #8 (permalink)  
Antiguo 10/08/2006, 09:35
Avatar de the_scorpion  
Fecha de Ingreso: mayo-2006
Ubicación: Cuba
Mensajes: 696
Antigüedad: 11 años, 6 meses
Puntos: 3
Se me quedaba esto a modo de estar mas seguro antes de que postees

Digo:
- Disculparme por si las moscas reinicia los servicios
__________________
Que hablen mal de uno es espantoso. Pero hay algo peor: que no hablen.
Quien hace, puede equivocarse. Quien nada hace, ya está equivocado".
  #9 (permalink)  
Antiguo 10/08/2006, 10:16
Avatar de Mono-R  
Fecha de Ingreso: abril-2006
Ubicación: Bs. As. Argentina
Mensajes: 155
Antigüedad: 11 años, 7 meses
Puntos: 1
Cita:
Iniciado por the_scorpion Ver Mensaje
Digo:
- tu ;sendmail_from = [email protected] está desabilitado quita el punto y coma ";".
- postea resultado

ups... ese maldito ";" jajajaja, ese era el problema!!!
sabes?, cuando me comentaron como configurar el php.ini para la función "mail" jamas mencionaron ese pequeño gran detalle!!!
Y ahora creo entender porque el formulario funcionaba sin esto no,
supongo que el formulario utiliza el servidor smpt localhost...
es así?

Gracias!!!
Un saludo
__________________
:-) ... cuanto más intento aprender descubro lo poco que se ... :pensando:
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 11:31.