envio con php y adjunto por email
Publicado por Francisco Javier (19 intervenciones) el 08/07/2020 10:37:41
buenos días, tenía un problema con un envio de un formulario para ue el usuario me enviara una serie de datos y adjuntara su C.V. y me lo enviara a mi email, pero hay algo que no funciona, os envio el HTML y el php y me decis en que puedo fallar. en mi email he puesto"############" y hay un dato que no se que poner realmente y he puesto "?????????????". espero puedan ayudarme. este código me lo ha facilitado una de nuestras compañeras de la comunidad a la que se lo agradezco. Un saludo.
----------------------------------------------------------php------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>envio de emails con archivos adjuntos</title>
<link rel="stylesheet" href="css/g1.css">
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<div id="container">
<h1>Envíenos su C.V. <a href="">nombre de mi web</a></h1>
<form action="send.php" method="post" enctype="multipart/form-data">
<fieldset>
<legend>rellena el formulario</legend>
<ul>
<li>
<label for="nombre">Nombre:</label>
<br>
<input type="text" id="nombre" name="nombre" placeholder="Nombre" required>
</li>
<li>
<label for="mail">E-mail:</label>
<br>
<input type="email" id="mail" name="email" placeholder="E-mail del emisor" required>
</li>
<br>
<li>
<label for="adjunto">Archivo adjunto</label>
<br>
<input type="file" id="adjunto" name="adjunto" required>
</li>
<li>
<label for="asunto">Asunto:</label>
<br>
<input type="text" id="asunto" name="asunto" placeholder="Asunto" required>
</li>
<li>
<label for="msn">Mensaje:</label>
<br>
<textarea name="msn" id="msn" rows="10" required></textarea>
</li>
<li>
<input type="submit" value="Enviar">
</li>
</ul>
</fieldset>
</form>
</div>
<script>
$(document).ready(function(){
$('form').submit(function(){
if($('input[type="text"]').val() == '' || $('input[type="email"]').val() == '' || $('input[type="file"]').val() == '' || $('textarea').val() == ''){
alert('Rellena todos los campos');
return false;
}
});
});
</script>
</body>
</html>
----------------------------------------------------------php------------------------------
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?php
class Email {
//nombre
var $nombre;
//email del emisor
var $mail;
//email del receptor
var $mailr;
var $asunto;
//mensaje
var $msn;
//archivo adjunto
var $adjunto;
//enviar el mensaje
private $sender;
//url para redireccionar
private $url;
//función constructora
public function __construct(){
//cada uno de ellos es el parámetro que enviamos desde el formulario
$this->nombre = $n;
$this->mail = $m;
$this->"#############" = $mr;
$this->asunto = $a;
$this->msn = $ms;
$this->adjunto = $ad;
}
//método enviar con los parámetros del formulario
public function enviar($n,$m,$mr,$a,$ms,$ad){
//si existe post
if(isset($_POST)){
//si existe adjunto
if($ad) {
//añadimos texto al nombre original del archivo
$dir_subida = 'fichero_';
//nombre del fichero creado -> fichero_nombreArchivo.pdf
$fichero_ok = $dir_subida . basename($ad);
//y lo subimos a la misma carpeta
move_uploaded_file($_FILES['adjunto']['tmp_name'], $fichero_ok);
}
//creamos el mensaje
$contenido = '
<h2>Nuevo mensaje de: '.$n.'</h2>
<hr>
Email: <b>'.$m.'</b><br>
Mensaje: <br><b>'.$ms.'</b><br>
';
//adjuntamos el archivo necesario para enviar los archivos adjuntos
require_once 'AttachMailer.php';
//enviamos el mensaje (emisor,receptor,asunto,mensaje)
$this->sender = new AttachMailer($m, $mr, $a, $contenido);
$this->sender->attachFile($fichero_ok);
//eliminamos el fichero de la carpeta con unlink()
//si queremos que se guarde en nuestra carpeta, lo comentamos o borramos
unlink($fichero_ok);
//enviamos el email con el archivo adjunto
$this->sender->send();
//url para redireccionar
$this->url = '?????????????????';
//redireccionamos a la misma url conforme se ha enviado correctamente con la variable si
header('Location:'.$this->url.'?s=si');
}
else{
//redireccionamos a la misma url conforme NO se ha enviado correctamente con la variable no
header('Location:'.$this->url.'?s=no');
}
}
}
//llamamos a la clase
$obj = new Email();
//ejecutamos el método enviar con los parámetros que recibimos del formulario
$obj->enviar($_POST['nombre'], $_POST['email'], "################", $_POST['asunto'], $_POST['msn'], $_FILES['adjunto']['name']);
?>
Valora esta pregunta


0