Hola, usualmente uso phpmailer en los formularios de contacto de las webs que hago. Pero me he dado cuenta que ya no funciona. Hice varias pruebas pero ninguna funciona. Este es el código que siempre me funcionó y ahora ya no:
(además por supuesto el class.phpmailer.php y el class.smtp.php)
código php:
Código:
<?php
include_once('class.phpmailer.php');
// Indica si los datos provienen del formulario
$postback = isset($_POST['postback']) ? true : false;
if ($postback) {
extract($_POST);
$mail = new phpmailer (); # Crea una instancia
$mail -> From = $from;
$mail -> FromName = $fromname; # Puede obtenerse del formulario, por facilidad se hace de esta manera
$mail -> AddAddress ("[email protected]");
$mail -> Subject = ("Contacto web");
$mail -> Body = "
<b>Nombre y Apellido:</b> $fromname<br />
<b>Empresa:</b> $empresa<br />
<b>Teléfono:</b> $telefono<br />
<b>E-mail:</b> $from<br />
<b>Asunto:</b> $subject<br />
<b>Mensaje:</b> $mensaje<br />
$msg
";
$mail -> IsHTML (true);
$archivos = '';
$msg = header("Location: muchasgracias.php");
if (isset ($_FILES["archivos"])) { # Si es que se subió algún archivo
$msg .= "<ul>";
foreach ($_FILES["archivos"]["error"] as $key => $error) { # Iterar sobre la colección de archivos
if ($error == UPLOAD_ERR_OK) { // Si no hay error
$tmp_name = $_FILES["archivos"]["tmp_name"][$key];
$name = $_FILES["archivos"]["name"][$key];
$msg .= "<li>$name</li>";
$name = uniqid('bc') . '_' . $name; # Generar un nombre único para el archivo
$mail -> AddAttachment ($tmp_name, $name); # Añade el archivo adjunto
/*
Si se van a guardar los archivos en un directorio, deberían descomentarse
las siguientes líneas, si se van a guardar los nombres
de los archivos en una base de datos, aquí debería realizarse algo...
move_uploaded_file($tmp_name, "ruta/directorio/$name"); # Guardar el archivo en una ubicación, debe tener los permisos necesarios
*/
} #if
} # foreach
$msg .= '</ul>';
} # if
if (!$mail -> Send ()){
$msg = "No se pudo enviar el email";
}
}
?>
Código del formulario html:
Código:
<form action="" method="post" enctype="multipart/form-data" name="frm" class="formulario">
<label for="fromname">Nombre:</label>
<input type="text" name="fromname" id="fromname" class="campo"/>
<label for="empresa">Empresa / Institución:</label>
<input type="text" name="empresa" id="empresa" class="campo"/>
<label for="telefono">Teléfono:</label>
<input type="text" name="telefono" id="telefono" class="campo"/>
<label for="from">E-mail:</label>
<input type="text" name="from" id="from" class="campo"/>
<label for="subject">Asunto:</label>
<input type="text" name="subject" id="subject" class="campo"/>
<label for="mensaje">Mensaje:</label>
<textarea name="mensaje" rows="3" id="mensaje"></textarea>
<input type="submit" id="postback" name="postback" value="Enviar"/>
<p><?php if (isset($msg)) echo $msg;?></p>
</form>
Agradecería infinitamente si alguien me echa un cable.
Gracias