Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/04/2009, 07:37
drasan
 
Fecha de Ingreso: abril-2009
Mensajes: 30
Antigüedad: 15 años, 9 meses
Puntos: 0
Exclamación enviar formulario e-mail

Hola,
primero comentaros que estoy empezando en esto del php asi que si pregunto cosas muy obvias perdonadme.

El tema es que quiero que a traves de un formulario de contacto, el usuario de la web pueda enviar alguna consulta a una direccion de correo que tengo configurada en el servidor. Buscando por google he encontrado el codigo y he descargado la carpeta de phpmailer con el class.phpmailer.php y class.smtp.php.
He creado dos archivos un *formulario.html con el codigo para visualizar el formulario:

Código:
<form name="contacto" action="" method="post">
<table width="100%">
	<tr>
		<td width="20%">Nombre:</td>
		<td><input type="text" name="nombre" size="30px" /></td>
	</tr>
	<tr>
		<td>Direcci&oacute;n de correo:</td>
		<td><input type="text" name="direccion" size="30px" /></td>
	</tr>
	<tr>
		<td>Asunto:</td>
		<td><input type="text" name="asunto" size="30px" /></td>
	</tr>
	<tr>
		<td valign="top">Mensaje:</td>
		<td>
			<textarea name="mensaje" cols="30"></textarea>
		</td>
	</tr>
	<tr>
		<td colspan="2" align="center">
			<input type="submit" name="enviar" value="Enviar" />
		</td>
	</tr>
</table>
</form>
y por otro lado el archivo contacto.php con el siguiente codigo que saque de internet:

Código:
<?php
	include("includes/phpmailer/class.phpmailer.php");
	$mail = new PHPMailer();
	$mail->PluginDir = "includes/phpmailer";
	$mail->Mailer = "smtp";
	$mail->Host = "smtp.hotpop.com";
	$mail->SMTPAuth = true;
	$mail->Username = "nombre_micuenta[arroba]HotPOP.com"; 
	$mail->Password = "micontraseña";
	$mail->From = "cuenta_usuario[arroba]direccion.com";
	$mail->FromName = "Nombre Usuario";
	$mail->Timeout=30;
	$mail->AddAddress("nombre_micuenta[arroba]HotPOP.com");
	$mail->Subject = "Prueba de phpmailer";
	$mail->AltBody = "Mensaje de prueba mandado con phpmailer en formato solo texto";
	$exito = $mail->Send();
	$intentos=1; 
	while ((!$exito) && ($intentos < 5)) {
		sleep(5);
     	//echo $mail->ErrorInfo;
     	$exito = $mail->Send();
     	$intentos=$intentos+1;
	}
	if(!$exito) {
		echo "Problemas enviando correo electrónico a ".$valor;
		echo "<br>".$mail->ErrorInfo;
	} else {
		echo "Mensaje enviado correctamente";
	} 
?>
la carpeta "phpmailer" la tengo dentro de otra llamada "includes", asi que por ahi bien. el problema es que no se como relacionar esos 2 archivos html y php, por lo que creo tal vez deberia ir en el action del formulario la llamada a contacto.php, pero como tambien quiero obligar a que se cumplimenten todos los campos no se como lo hacer.
y que quiere decir "->" en las sentencias como $mail->Mailer = "smtp"; no habia visto hasta ahora usar en php "->"

no lo he llegado a probar porque no se como conectarlo, si me podeis corregir el codigo si hay algo mal y orientarme sobre que pasos seguir una vez en el diseño del formulario os lo agradeceria. me he liado un poco con "username, from, addaddress". en username creo entender que va mi direccion de correo al igual que en addaddress y en from la del usuario que envia el mensaje. he buscado otra funcion para comprobar que el formato de e-mail del emisor sea correcto, aunque de momento solo quiero comprobar que el correo llegue a mi cuenta

he creado una cuenta de hotpop, para hacer pruebas antes de subirlo al servidor, estoy trabajando en local con windows xp, y un servidor apache, mysql y php.

Si hay algo raro que no se entienda o que este sin explicar decidmelo, he estado dandole tantas vueltas que ya casi ni se por donde ando

Muchas gracias

Última edición por drasan; 18/04/2009 a las 07:55