Foros del Web » Programación para mayores de 30 ;) » Programación General »

Formmail sobre apache y en local

Estas en el tema de Formmail sobre apache y en local en el foro de Programación General en Foros del Web. Tengo appserv instalado y quiero usar formmail pero siguiendo las indicaciones del tutorial que hay aquí no consigo que vaya bien. y tengo 2 preguntas ...
  #1 (permalink)  
Antiguo 21/09/2006, 16:16
moe
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 2
Mensaje Formmail sobre apache y en local

Tengo appserv instalado y quiero usar formmail pero siguiendo las indicaciones del tutorial que hay aquí no consigo que vaya bien.

y tengo 2 preguntas al respecto que puede que sean claves:

- En $mailprog como sería más aconsejable ponerlo ( tengo todos los servidores en local)
$mailprog = 'smtp:xxx.xxx.xxx.xxx'; ( ¿pongo la ip pública o la privada donde está el server?)

o quizá

$mailprog = 'c:/archivos de progama/progama que uso para que me gestione el correo'; (¿habría que sañalar el .exe?)

- y la segunda ¿cómo doy permisos chmod 755? porque yo a mi carpeta www no accedo vía ftp si no por el explorador de windows


A ver si me podeís hechar una mano que me estoy volviendo loco.
Un saludo!
  #2 (permalink)  
Antiguo 21/09/2006, 16:22
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Hay un pequeño problema, el FormMail es solo para linux, no para windows, por eso no le puedes dar permisos chmod...Eso es en linux...

Checkea esta faq

http://www.forosdelweb.com/showpost....5&postcount=66

Es un script parecido al FormMail pero para windows...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 22/09/2006, 10:30
moe
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 2
Gracias por responderme monoswim

Te/os cuento:

He probado a configurar el formmail clonado pero no doy con ello, he seguido los pasos que salen en el README ( mi inglés es un poco precario) pero no consigo pornerlo en marcha. Siempre me pone INTERNAL SERVER ERROR.

Os explico un poco lo que hago a ver si me podeís ayudar, pues no se si el clonado lo habeís usado por aquí. Corregidme en todo lo que veais raro.

*NOTA: como no me deja postear direcciones sustituyo donde va un . pongo [punto] y donde va @ pongo [arroba]

La configuración básica para rellenar es esta:

$smtp_server = "mailhost[punto]domain[punto]com";

>> Bien aquí he probado con localhost y mi dirección ip privada donde está el servidor de correo, pero nada.
Tampoco se si hay que ponerlo con 'locahost' o con "localhost"
Y para cuando lo usen desde el exterior de mi máquina pondré la dirección de smtp que en mi caso es smtp[punto]midominio[punto]com. Pero como ahora uso el formulario en local supongo que habrá que ponerlo como os comento.

$mail_admin = "postmaster";

>> Aquí según me ha parecido entender hay que poner el email del soporte (soporte[arroba]midominio[punto]com) He probado a ponerlo entre " " como viene y también entre ' ' pero nada.

@recipient_addresses = ();

>> aquí si no he entendido mal hay que poner la dirección a la que va a ser enviada el formulario que es la misma que he puesto en el input type de mi formulario (direccion[arroba]midominio[punto]com)

@recipient_domains = ();

>> aqui entiendo que tengo que poner mi dominio. He probado poniéndolo www[punto]midominio[punto]com y midominio[punto]com entre los ( ).
También he probado con (" ") y (' ') pero nada de nada

$mailprog = 'Geocel.Mailer';

Esto es lo que viene en el ejemplo, yo uso visnetic mailserver para la gestión del correo pero no se como hay que ponerlo, he probado con:
'visnetic.mailserver'
' c:\Deerfield.com\VisNetic MailServer'
' c:/Deerfield.com/VisNetic MailServer'

* Al especificar la ruta no se como deben ir las barras si / o \

Con todas esa pruebas en el error log de mi apache sale siempre este error:

C:/AppServ/www/cgi-bin/formmail.pl is not executable; ensure interpreted scripts have "#!" first line
(9)Bad file descriptor: don't know how to spawn child process: C:/AppServ/www/cgi-bin/formmail.pl

Entonces como habla de "#!" first line he caido en la cuenta que en el formmail de unix/linux al principio viene la línea #!/usr/bin/perl. La introduzco en mi formmail clonado sin resultado alguno, siendo el error de apache:

(OS 3)El sistema no puede hallar la ruta especificada. : couldn't create child process: 720003: formmail.pl
(OS 3)El sistema no puede hallar la ruta especificada. : couldn't spawn child process: D:/AppServ/www/cgi-bin/formmail.pl

Y me digo, claro los directorios no me suenan nada en windows por lo que pruebo con ( esto es una prueba sin fundamento alguno, solo se me ocurrió):

#!c:/AppServ/www/cgi-bin

porque no se donde está el directorio de perl en windows.

Y al meter esto el error del apache cambia a

(OS 5)Acceso denegado. : couldn't create child process: 720005: formmail.pl
(OS 5)Acceso denegado. : couldn't spawn child process: D:/AppServ/www/cgi-bin/formmail.pl

¿Me podeís echar una mano? Estoy desesperado y ya pocas ocurrencias me quedan, aunque no tiro la toalla y sigo probando.

Gracias de antemano.
  #4 (permalink)  
Antiguo 22/09/2006, 16:29
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años
Puntos: 90
Cita:
Tampoco se si hay que ponerlo con 'locahost' o con "localhost"
Es lo mismo ponerlo con " o con ' ahí tendrías que poner algo como mail.dominio.com

@recipient_addresses = ('[email protected]'); poné ahí las casillas que estarán habilitadas como para recibir mail, que sea la misma que en recipient

@recipient_domains = (); los dominios que podrán recibir...

$mailprog = 'Geocel.Mailer'; NO LO TOQUES, ya terminó la cabecera dos líneas arriba !!!

Ahora bien, tenés que colocar en la primera línea algo así como #!c:/perl/bin/perl.exe

Obviamente tienes instalado el intérprete de perl no ???

Lo tienes ? sino instálalo de www.activeperl.com

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 23/09/2006, 07:10
moe
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 2
Gracias monoswin, ya podía estar poniendo cosas que el activeperl no lo tenía instalado.

Por el momento sigue sin funcionar pero la cosa tiene mejor pinta, pero el error que da es:

Error: No Recipient
There was no recipient address specified in the data sent to FormMail. Please make sure you have filled in the recipient form field with an e-mail address that has been configured in either @recipient_addresses or in @recipient_domains. More information on filling in recipient form fields and variables can be found in the README file.

La configuración la tengo de la siguiente manera:

$mail_admin = "nombre[arroba]dominio[punto]com";

@recipient_addresses = ('nombre[arroba]dominio[punto]com');

@recipient_domains = (dominio[punto]com);
Aquí he probado poniendo el dominio[punto]com entre comillas simples ' ' , también con www[punto]dominio[punto]com sin las comillas simples y con www[punto]dominio[punto]com entre comillas simples, pero ninguna de las opciones va bien.

Por otro lado, en el formulario tengo:

<form action="http[dos puntos]//www[punto]dominio[punto]com/cgi-bin/formmail[punto]pl" method="post" enctype="multipart/form-data" name="form1"><p>

<input type=hidden name="recipient" value="nombre[arroba]dominio[punto]com">

<input type=hidden name="subject" value="Your Subject">

<input type=hidden name="redirect" value="http[dos puntos]//www[punto]dominio[punto]com /gracias[punto]html">

Yo a priori no detecto error comparando con las instruccion del README y algún otro manual de la red. La unica diferencia es que en el formulario sale despues de POST enctype="multipart/form-data" name="form1"><p> y en los ejemplos no viene, pero si lo quito me dice el formmail cuando intento enviar internal server error

¿Detectaís alguno el fallo?

Gracias por leerme y ayudarme de antemano
  #6 (permalink)  
Antiguo 23/09/2006, 09:24
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
De momento, hay un error en $mail_admin: el poner la '@' entre comillas dobles te dará un disgusto.

Pon la dirección de correo $mail_admin entre comillas simples, no dobles.
  #7 (permalink)  
Antiguo 23/09/2006, 10:38
moe
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 2
El disgusto lo tengo con el script entero :) Esta peleón peleón que guerra me está dando...ayssss

He puesto el $mail_admin entre comillas simples pero sigo con el mismo error:

Error: No Recipient
There was no recipient address specified in the data sent to FormMail. Please make sure you have filled in the recipient form field with an e-mail address that has been configured in either @recipient_addresses or in @recipient_domains. More information on filling in recipient form fields and variables can be found in the README file.

Sigo dándole vueltas al tarro pero ya pocos ases me quedan en la manga.... ¿alguien tiene por ahí un comodín? :P

Un saludo!!
  #8 (permalink)  
Antiguo 24/09/2006, 08:05
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Pues sigo sin ver el fallo, salvo el detalle nuevo de que los dominios que hay en @recipient_domains también deben ir entrecomillados simples.

Tendrás que empezar a pensar en ejecutar el script en modo debugger para ver qué pasa (o poner prints para ver qué valores está usando y por dónde va el programa).
  #9 (permalink)  
Antiguo 24/09/2006, 11:56
moe
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 2
Lo intentaré tal y como me recomiendas, pero me da a mí que no va a ser la solución. Poner las comillas simples en el @recipient_domains ya lo probé sin que fuera resolutivo en alguna ocasión, tal y como comenté en post anterior.

Lo de ejecutar en modo debugger o poner prints, no se a que te refieres pues soy muy novato en esto de los CGI´s. ¿Algún manual donde lo explique?

He de decir que en el servidor estoy haciendo virtual hosting, o lo que es lo mismo, alojo varias páginas sobre una misma IP, y puede que se haga un lio y no entienda bien la orden ¿podría ser?

¿Quizá si en en @recipient_domains pusiera la ip del servidor, podría
funcionar?

Y por ultimo, si no consiguiera hacerlo funcionar ¿qué alternativas tendría para dar este tipo de servicio en mis páginas?

Se me ocurre:

- ¿Instalar yo este CGI ( FormMail ) en un hosting gratuito?
- ¿Algún otro tipo de CGI que trabaje sobre windows?
- ¿Usar otro CGI instalado en un servidor externo que me suena que los hay?

¡Como me revienta que me pueda el script!

Un saludo y muchísimas gracias a ambos.
  #10 (permalink)  
Antiguo 24/09/2006, 14:46
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Para que el formmail funcione, el script debe recibir como parámetros una dirección de correo que esté en la lista de @recipient_addresses, y el propio script debe haberse sido ejecutado en alguno de los dominios de @recipient_domains.

Te comenté lo de las comillas simples porque arriba tenías puesto:

@recipient_domains = (dominio[punto]com);

y ahí sí que hacen falta las comillas simples.

Lo del debugger no lo podrás probar si dependes de un servidor remoto que no es tuyo y no te permita ejecutar los scripts desde el shell.

Una forma de ver si hay errores en los scripts es poner

use CGI::Carp qw(fatalsToBrowser);

justo después de use CGI;.

En http://perlenespanol.baboonsoftware....hp?p=4569#4569 tienes mi CGI mínimo para comprobar que realmente te funcionan los CGI.
  #11 (permalink)  
Antiguo 26/09/2006, 00:31
moe
 
Fecha de Ingreso: septiembre-2006
Mensajes: 13
Antigüedad: 18 años, 5 meses
Puntos: 2
No vamos a ver, el servidor es el appserv montado de forma de local en mi pc y trabajando sobre windows xp.

Acabo de probar tú CGI mínimo y me sale el texto: "CGI MINIMO si ves el texto es que SI funciona bien" así que parece que va bien el servicio cgi.

Lo del debugger no lo podrás probar si dependes de un servidor remoto que no es tuyo y no te permita ejecutar los scripts desde el shell.

¿Cómo lo hago para poder seguir con las comprobaciones que me recomiedas?

Muchas gracias!
  #12 (permalink)  
Antiguo 26/09/2006, 02:41
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 9 meses
Puntos: 11
Puedes probar el formmail en tu ordenador ejecutándole desde la línea de comandos y dándole como parámetro la lista de argumentos que se le pasa a formmail vía web, con sus valores. Por ejemplo:
perl formmail.pl [email protected],subject=Prueba
Para activar el debugger, hay que poner -d después de perl, y podrás ejecutarlo paso a paso.
En mailprog, comprueba que has escrito 'SMTP:ip del servidor del correo'. Y, naturalmente, ese servidor permite el envío de correo desde tu máquina, de modo no autenticado (no necesitas darle tu nombre de usuario y contraseña para poder enviar el correo).
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 12:59.