Como enviar correos con Gmail PHP y PHPMailer

como enviar correos con gmail php y phpmailer academia joystick

El pequeño formulario que se muestra en la vista inicial.

<form action="tutoriales/post_gmail" method="POST">
            <?php echo insert_inputs(); ?>
            
            <div class="mb-3 row">
              <div class="col-12 col-md-6">
                <label class="form-label" for="destinatario">Destinatario</label>
                <input type="email" class="form-control" name="destinatario" id="destinatario" placeholder="suscríbete@joystick.com.mx">
              </div>
              <div class="col-12 col-md-6">
                <label class="form-label" for="asunto">Asunto del correo</label>
                <input type="text" class="form-control" name="asunto" id="asunto" placeholder="El asunto del correo electrónico">
              </div>
            </div>
            <div class="mb-3 row">
              <div class="col-12 col-md-12">
                <label class="form-label" for="contenido">Mensaje</label>
                <input type="text" class="form-control" name="contenido" id="contenido" placeholder="Escribe aquí...">
              </div>
            </div>
            <button class="btn btn-success" type="submit"><i class="fas fa-paper-plane"></i> Enviar correo</button>
          </form>

El primer método se enfoca a renderizar el formulario de envío de correo.

function gmail()
  {
    $data =
    [
      'title' => 'Nuevo mensaje'
    ];

    View::render('gmail', $data);
  }

  function post_gmail()
  {
    try {
      // Contenido del correo
      $asunto    = clean($_POST["asunto"]);
      $contenido = clean($_POST["contenido"]);
      $para      = clean($_POST["destinatario"]);

      if (!filter_var($para, FILTER_VALIDATE_EMAIL)) {
        throw new Exception('Dirección de correo electrónico no válida.');
      }

      // Intancia de PHPMailer
      $mail                = new PHPMailer();
  
      // Es necesario para poder usar un servidor SMTP como gmail
      $mail->isSMTP();
  
      // Si estamos en desarrollo podemos utilizar esta propiedad para ver mensajes de error
      //SMTP::DEBUG_OFF    = off (for production use) 0
      //SMTP::DEBUG_CLIENT = client messages 1 
      //SMTP::DEBUG_SERVER = client and server messages 2
      $mail->SMTPDebug     = SMTP::DEBUG_SERVER;
  
      //Set the hostname of the mail server
      $mail->Host          = 'smtp.gmail.com';
      $mail->Port          = 465; // o 587
  
      // Propiedad para establecer la seguridad de encripción de la comunicación
      $mail->SMTPSecure    = PHPMailer::ENCRYPTION_SMTPS; // tls o ssl para gmail obligado
  
      // Para activar la autenticación smtp del servidor
      $mail->SMTPAuth      = true;

      // Credenciales de la cuenta
      $email              = 'tucorreo@gmail.com';
      $mail->Username     = $email;
      $mail->Password     = 'tucontraseña';
  
      // Quien envía este mensaje
      $mail->setFrom($email, 'Roberto Orozco');

      // Si queremos una dirección de respuesta
      $mail->addReplyTo('replyto@panchos.com', 'Pancho Doe');
  
      // Destinatario
      $mail->addAddress($para, 'John Doe');
  
      // Asunto del correo
      $mail->Subject = $asunto;

      // Contenido
      $mail->IsHTML(true);
      $mail->CharSet = 'UTF-8';
      $mail->Body    = sprintf('<h1>El mensaje es:</h1><br><p>%s</p>', $contenido);
  
      // Texto alternativo
      $mail->AltBody = 'No olvides suscribirte a nuestro canal.';

      // Agregar algún adjunto
      //$mail->addAttachment(IMAGES_PATH.'logo.png');
  
      // Enviar el correo
      if (!$mail->send()) {
        throw new Exception($mail->ErrorInfo);
      }

      Flasher::success(sprintf('Mensaje enviado con éxito a %s', $para));
      Redirect::back();

    } catch (Exception $e) {
      Flasher::error($e->getMessage());
      Redirect::back();
    }
  }

Deja que llegue a más gente

Facebook
Twitter
Pinterest
LinkedIn

9 cursos al precio de 1

Aprovecha nuestro Pack Full Stack con 9 cursos premium al precio más bajo del año.

$99 MXN

$2,000 MXN

Considera suscribirte para más

Flecha apuntando

2 comentarios en “Como enviar correos con Gmail PHP y PHPMailer”

Deja un comentario

Tu dirección de correo electrónico no será publicada.

¿Ya nos sigues?

Más Populares

Recibe Todo en Tu Inbox

Suscríbete a nuestro boletín

Sin spam, solo notificaciones de nuevos cursos y contenido de la Academia.

Destacados para ti

Relacionados