Formulario HTML:
Código HTML:
<form name="form" action="#" id='file-form'> Tema:<br> <select name="correo"> <option>1</option> <option>2</option> </select> <br><br> Asunto:<br> <input type="text" name="asunto"> <br><br> Cuerpo:<br> <textarea name="cuerpo" id="cuerpo" style="height: 150px; resize: none;"></textarea> <input type="file" id='file-select'> </form> <br> <button class="boton" onclick="javascript:enviarcorreo();">Enviar</button>
Código Javascript:
Ver original
function enviarcorreo(){ asunto=document.form.asunto.value; cuerpo=document.form.cuerpo.value; correo=document.form.correo.value; var form = document.getElementById('file-form'); var fileSelect = document.getElementById('file-select'); var files = fileSelect.files; //Loop through each of the selected files. for (var i = 0; i < files.length; i++) { var file = files[i]; formData.append('adjunto', file, file.name); } if (cuerpo=='' || asunto==''){ alert('Debe rellenar todos los campos'); }else{ filtroe = '[FILTRO]'; ajax6=objetoAjax(); ajax6.open("POST", "mail2.php",true); ajax6.onreadystatechange=function(){ if (ajax6.readyState==4) { var valor = ajax6.responseText; if (valor==1){ window.location ="index.php"; }else{ alert(valor); } } } ajax6.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); var formData = new FormData(); formData.append("asunto", filtroe + " - " + asunto); formData.append("cuerpo", cuerpo); formData.append("correo", correoe); ajax6.send(formData); } }
Y mail2.php:
Código PHP:
<?php
require ('PHPMailer/class.phpmailer.php');
require ("PHPMailer/class.smtp.php");
$mail = new PHPMailer();
$body = $_POST["cuerpo"];
$mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = "MI HOST"; // SMTP server
$mail->From = "CORREO DESDE EL QUE ENVIA";
$mail->FromName = "NOMBRE";
$mail->Subject = $_POST["asunto"];
$mail->AltBody = "Cuerpo alternativo
para cuando el visor no puede leer HTML en el cuerpo";
$mail->MsgHTML($body);
$mail->AddAddress($_POST["correo"], "Elecciones");
if (isset($_FILES['adjunto']) && $_FILES['adjunto']['error'] == UPLOAD_ERR_OK) {
$mail->AddAttachment($_FILES['adjunto']['tmp_name'],
$_FILES['adjunto']['name']);
}
// si el SMTP necesita autenticación
$mail->SMTPAuth = true;
// credenciales usuario
$mail->Username = "USUARIO";
$mail->Password = "CONTRASEÑA";
$mail->CharSet= 'UTF-8';
if(!$mail->Send()) {
echo "Error al enviar el mensaje: " . $mail*>ErrorInfo;
} else {
echo "1";
}
?>