PHP - Plantilla PHPMailer

 
Vista:

Plantilla PHPMailer

Publicado por Luis (1 intervención) el 04/12/2017 10:40:47
Hola mi nombre es Luis y soy un programador Junior.

Estoy haciendo una web mediante una plantilla y no se como hay que configurar el formulario para que envíe los correos.
Yo he cambiado algunas cosas pero sigue sin funcionar, espero que puedan ayudarme, Gracias.

Voy a poner el código del archivo al que llama el FORM

rd-mailform.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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<?php
 
$recipients = 'luis****@gmail.com';
//$recipients = '#';
 
try {
    require './phpmailer/PHPMailerAutoload.php';
 
    preg_match_all("/([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)/", $recipients, $addresses, PREG_OFFSET_CAPTURE);
 
    if (!count($addresses[0])) {
        die('MF001');
    }
 
    if (preg_match('/^(127\.|192\.168\.)/', $_SERVER['REMOTE_ADDR'])) {
        die('MF002');
    }
 
    $template = file_get_contents('rd-mailform.tpl');
 
    if (isset($_POST['form-type'])) {
        switch ($_POST['form-type']){
            case 'contact':
                $subject = 'A message from your site visitor';
                break;
            case 'subscribe':
                $subject = 'Subscribe request';
                break;
            case 'order':
                $subject = 'Order request';
                break;
            default:
                $subject = 'A message from your site visitor';
                break;
        }
    }else{
        die('MF004');
    }
 
    if (isset($_POST['email'])) {
        $template = str_replace(
            ["<!-- #{FromState} -->", "<!-- #{FromEmail} -->"],
            ["Email:", $_POST['email']],
            $template);
    }else{
        die('MF003');
    }
 
    if (isset($_POST['message'])) {
        $template = str_replace(
            ["<!-- #{MessageState} -->", "<!-- #{MessageDescription} -->"],
            ["Message:", $_POST['message']],
            $template);
    }
 
    preg_match("/(<!-- #{BeginInfo} -->)(.|\n)+(<!-- #{EndInfo} -->)/", $template, $tmp, PREG_OFFSET_CAPTURE);
    foreach ($_POST as $key => $value) {
        if ($key != "email" && $key != "message" && $key != "form-type" && !empty($value)){
            $info = str_replace(
                ["<!-- #{BeginInfo} -->", "<!-- #{InfoState} -->", "<!-- #{InfoDescription} -->"],
                ["", ucfirst($key) . ':', $value],
                $tmp[0][0]);
 
            $template = str_replace("<!-- #{EndInfo} -->", $info, $template);
        }
    }
 
    $template = str_replace(
        ["<!-- #{Subject} -->", "<!-- #{SiteName} -->"],
        [$subject, $_SERVER['SERVER_NAME']],
        $template);
 
    $mail = new PHPMailer();
    $mail->From = $_SERVER['SERVER_ADDR'];
    $mail->FromName = $_SERVER['SERVER_NAME'];
 
    foreach ($addresses[0] as $key => $value) {
        $mail->addAddress("luis****@gmail.com","luis");
    }
 
    $mail->CharSet = 'utf-8';
    $mail->Subject = $subject;
    $mail->MsgHTML($template);
 
    if (isset($_FILES['attachment'])) {
        foreach ($_FILES['attachment']['error'] as $key => $error) {
            if ($error == UPLOAD_ERR_OK) {
                $mail->AddAttachment($_FILES['attachment']['tmp_name'][$key], $_FILES['Attachment']['name'][$key]);
            }
        }
    }
 
    $mail->send();
 
    die('MF000');
} catch (phpmailerException $e) {
    die('MF254');
} catch (Exception $e) {
    die('MF255');
}
 
?>
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
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Plantilla PHPMailer

Publicado por xve (6933 intervenciones) el 04/12/2017 17:43:16
Hola Luis, a simple vista no se ver que puede fallar...

te devuelve algún mensaje de error??? si hay cualquier error, se para el proceso devolviendo un error.
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
sin imagen de perfil
Val: 74
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Plantilla PHPMailer

Publicado por Luis (33 intervenciones) el 04/12/2017 18:06:39
Envía el mensaje correctamente sin dar error alguno, pero luego en la bandeja de el correo no recibo nada.

Tengo que configurar algo en windows?

los archivos de la plantilla para PHPmailer son estos:

class.phpmailer.php
class.pop3.php
class.smtp.php
PHPMailerAutoload.php

No, se si tengo que cambiar algún otro archivo
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
Imágen de perfil de xve
Val: 3.084
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Plantilla PHPMailer

Publicado por xve (6933 intervenciones) el 04/12/2017 23:41:36
No, no tienes que configurar nada... phpmailer se conecta a tu servidor de correo y desde ahí hace el envió... Tienes bien configurado los valores en el phpmailer, no?
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
sin imagen de perfil
Val: 74
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Plantilla PHPMailer

Publicado por Luis (33 intervenciones) el 05/12/2017 09:19:45
Me parece que no, supongo que sería el archivo "class.phpmailer.php"

Lo dejo adjunto y a ver si me puedes decir que debo cambiar

Mil Gracias.
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