PHP - Enviar email cuando se llama a una funcion

 
Vista:
sin imagen de perfil
Val: 60
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

Enviar email cuando se llama a una funcion

Publicado por Edgar (21 intervenciones) el 30/03/2017 16:58:54
Buenas tardes,

Necesito ayuda con el PHPMailer, estoy realizando un código en el cual si se cumple una opción tiene que enviar un email... Ahora mismo ya soy capaz de enviar el email cuando entro en la pagina donde tengo todo el código, el problema es cuando intento realizarlo desde la función...

Alguien tiene alguna idea ??

Actualmente la pagina que si funciona si entro desde el navegador es la siguiente...

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
82
83
84
85
86
<?php
 
 
$fecha = date("d") . "-" . date("m") . "/" . date("Y");
$hora = date("H") . ":" . date("i") . ":" . date("s");
 
$nombre = 'Sr Menganito';
$webOrigen = "MiCerradura2.0";
?>
 
 
 
<?php
ini_set('display_errors', 1);
require("PHPMailer/class.phpmailer.php");
require("PHPMailer/class.smtp.php");
 
function send($correo, $nombre, $descripcion) {
    $mail = new PHPMailer();
 
 
    $body = 'Apreciado ' . $GLOBALS['nombre'] . ', <br><br>
              
              Se ha registrado el acceso.';
 
    $mail->IsSMTP();
 
    //Sustituye (ServidorDeCorreoSMTP)  por el host de tu servidor de correo SMTP
    $mail->Host = "smtp";
    $mail->Port = 587;
    $mail->SMTPDebug = 1; // debugging: 1 = errors and messages, 2 = messages only
    //Sustituye  ( CuentaDeEnvio )  por la cuenta desde la que deseas enviar por ejem. prueba@domitienda.com  
    $mail->From = "direccionemail";
 
    $mail->MsgHTML($body);
 
 
    // Sustituye  (CuentaDestino )  por la cuenta a la que deseas enviar por ejem. usuario@destino.com  
    $mail->AddAddress("direccionemail", '');
    $mail->SMTPAuth = true;
 
    // Sustituye (CuentaDeEnvio )  por la misma cuenta que usaste en la parte superior en este caso  prueba@midominio.com  y sustituye (ContraseñaDeEnvio)  por la contraseña que tenga dicha cuenta 
 
    $mail->Username = "direccionemail";
    $mail->Password = "contraseña";
 
    if ($mail->Send()) {
        //return true;
        ?>
        <div class="container well" id="formularioContacto">
            <h3 align="center">Mensaje enviado correctamente.</h3>
            <h3 align='center'><span  class="glyphicon glyphicon glyphicon-thumbs-up" style="color:green" aria-hidden="true"></span></h3>
            <br>
            <p align="center" ><a href="../../formulariosUsuarios/Contacto/formularioContacto.php">atras</a></p>
        </div>
        <?php
        $mail->MsgHTML($body);
        $mail->ClearAddresses();
        $mail->FromName = "MiNombre";
        $mail->Subject = "Registro evento";
        $mail->AltBody = "Registro evento";
        $mail->AddAddress("$correo", '');
        $mail->Send();
 
        return $body;
    } else {
        ?>
        <div class="container well" id="formularioContacto">
            <h3 align="center">Error en envio del mensaje.</h3>
            <h3 align='center'><span  class="glyphicon glyphicon-warning-sign" style="color:red" aria-hidden="true"></span></h3>
            <br>
 
            <br>
            <br>
            <h6 align='center'>
                Si el error persiste, puede contactar con nosotros directamente
                en el email info@domotica20.com</h6>
        </div>
        <?php
        return false;
        die();
    }
}
 
$html = send('miCuenta@dominio.com', $_POST['nombre'], $_POST['descripcion']);
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 60
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

[RESUELTO] Enviar email cuando se llama a una funcion

Publicado por Edgar (21 intervenciones) el 30/03/2017 20:29:31
Al final buscando por internet he encontrado una versión reducida de lo que yo tenía, la cual si que la puedo meter donde llamaba a la función, ya que no se por que motivo, con la funcion no me funciona.

Dejo a continuación el código para todo el mundo que lo dese :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
require '../email/PHPMailer/class.phpmailer.php';
try {
    $mail = new PHPMailer(true); //Nueva instancia, con las excepciones habilitadas
    $body = '<p>Este es un Mensaje de Prueba</p>';
    $body = preg_replace('/\\\\/', '', $body); //Escapar backslashes
    $mail->IsSMTP();                           // Usamos el metodo SMTP de la clase PHPMailer
    $mail->SMTPAuth = true;                  // habilitado SMTP autentificación
    $mail->Port = 123;                    // puerto del server SMTP
    $mail->Host = "dominio smtp"; // SMTP server
    $mail->Username = "email del emisor";     // SMTP server Usuario
    $mail->Password = "contraseña";            // SMTP server password
    $mail->From = "emisor"; //Remitente de Correo
    $mail->FromName = "Name"; //Nombre del remitente
    $to = "para (receptor)"; //Para quien se le va enviar
    $mail->AddAddress($to);
    $mail->Subject = "Mi primer mensaje con PhpMailer"; //Asunto del correo
    $mail->MsgHTML($body);
    $mail->IsHTML(true); // Enviar como HTML
    $mail->Send(); //Enviar
    echo 'El Mensaje a sido enviado.';
} catch (phpmailerException $e) {
    echo $e->errorMessage(); //Mensaje de error si se produciera.
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

[RESUELTO] Enviar email cuando se llama a una funcion

Publicado por xve (6935 intervenciones) el 31/03/2017 08:23:59
Gracias por compartirlo Edgar!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 60
Ha aumentado su posición en 2 puestos en PHP (en relación al último mes)
Gráfica de PHP

[RESUELTO] Enviar email cuando se llama a una funcion

Publicado por Edgar (21 intervenciones) el 01/04/2017 12:40:57
Es un placer hacerlo, ya toca que yo pueda aportar algo también;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar