✅ Noticias, temas, complementos de WEB y WordPress. Aquí compartimos consejos y las mejores soluciones para sitios web.

Enviar correo electrónico usando Mailjet (alternativa al servidor SMTP de Gmail) en PHP

570

Los propietarios del sitio web necesitan enviar correos electrónicos a nuestros usuarios con regularidad. Si está utilizando la función mail() de PHP para enviar correos electrónicos, pronto se dará cuenta de que sus correos electrónicos terminan en el correo no deseado y no en la bandeja de entrada del usuario. Como resultado, la mayoría de los usuarios no se dan cuenta de sus correos electrónicos importantes. Para resolver este problema, debe utilizar servidores SMTP para enviar sus correos electrónicos.

El servidor SMTP de Gmail es una opción bastante popular entre los desarrolladores. Pero hay 2 problemas al utilizar este servicio de Google. Primero, no podía establecer la dirección ‘de’ al enviar el correo electrónico. Gmail establece su dirección de correo electrónico (ID de correo electrónico de Google) como la dirección del remitente. En segundo lugar, debe activar la configuración "permitir aplicaciones menos seguras" que no es recomendada por Google.

Para evitar estas limitaciones, encontré una solución alternativa para el servidor SMTP de Gmail que es Mailjet. Mailjet es un servicio de entrega de correo electrónico para equipos de desarrollo y marketing. Podemos enviar correos electrónicos fácilmente usando Mailjet en PHP. Proporcionan su propia API de correo electrónico para enviar correos electrónicos. También puede utilizar su servicio SMTP.

Empezando

Mailjet proporciona una cuota de 6000 correos electrónicos gratuitos al mes (200 correos electrónicos al día). Para las pequeñas empresas, esta cuota gratuita es suficiente. Si su empresa necesita más correos electrónicos, consulte su página de precios.

Durante el proceso de registro, se le pedirá que elija el método de envío. En este tutorial, discutimos tanto la API de correo electrónico como la retransmisión SMTP, por lo que, por ahora, elija la opción API.

Enviar correo electrónico usando Mailjet (alternativa al servidor SMTP de Gmail) en PHP

Siga los siguientes pasos. Desde la pantalla de abajo, presione el botón ‘Comenzar’ en la sección de desarrollador.

Enviar correo electrónico usando Mailjet (alternativa al servidor SMTP de Gmail) en PHP

Para obtener sus claves de API, vaya a ‘Configuración de la cuenta’. En la página siguiente, en la sección API REST, haga clic en ‘Gestión de claves API maestra y API secundaria’. Copie la clave API y la clave secreta que se requieren en los siguientes pasos.

Enviar correo electrónico usando Mailjet (alternativa al servidor SMTP de Gmail) en PHP

Mailjet nos permite configurar la dirección del remitente. En ‘Remitentes y dominios’, haga clic en ‘Agregar un dominio o direcciones de remitente’ y, en la página siguiente, agregue una dirección de remitente.

Enviar correo electrónico usando Mailjet (alternativa al servidor SMTP de Gmail) en PHP

Si está configurando una dirección que no sea el correo electrónico de su cuenta, recibirá un correo electrónico para la verificación.

Enviar correo electrónico usando Mailjet a través de cURL en PHP

Estamos listos con nuestras claves API y listos para enviar nuestro correo electrónico usando Mailjet y cURL en PHP. Asegúrese de tener cURL habilitado en su servidor; de lo contrario, el siguiente código no funcionará como se esperaba. Reemplace los marcadores de posición con los valores reales antes de ejecutar el siguiente código.

<?php
$body = [
    'Messages' => [
        [
        'From' => [
            'Email' => "SENDER_EMAIL_ADDRESS",
            'Name' => "SENDER_NAME"
        ],
        'To' => [
            [
                'Email' => "RECIPIENT_EMAIL_ADDRESS",
                'Name' => "RECIPIENT_NAME"
            ]
        ],
        'Subject' => "Greetings from Mailjet.",
        'HTMLPart' => "<h3>Dear User, welcome to Mailjet!</h3><br />May the delivery force be with you!"
        ]
    ]
];
  
$ch = curl_init();
  
curl_setopt($ch, CURLOPT_URL, "https://api.mailjet.com/v3.1/send");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($body));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json')
);
curl_setopt($ch, CURLOPT_USERPWD, "API_KEY:SECRET_KEY");
$server_output = curl_exec($ch);
curl_close ($ch);
  
$response = json_decode($server_output);
if ($response->Messages[0]->Status == 'success') {
    echo "Email sent successfully.";
}

Enviar correo electrónico usando Mailjet a través de Guzzle en PHP

Es posible que desee utilizar Guzzle para enviar sus correos electrónicos. Probablemente su aplicación se está ejecutando en un marco o CMS donde está utilizando un Composer para administrar bibliotecas. En ese caso, Guzzle sería una mejor opción que cURL.

En estos escenarios, instale la biblioteca Guzzle ejecutando el comando:

composer require guzzlehttp/guzzle

Después de instalar la biblioteca, usando el código a continuación, puede enviar correos electrónicos usando Guzzle en PHP.

<?php
require_once "vendor/autoload.php";
  
use GuzzleHttpClient;
  
$body = [
    'Messages' => [
        [
        'From' => [
            'Email' => "SENDER_EMAIL_ADDRESS",
            'Name' => "SENDER_NAME"
        ],
        'To' => [
            [
                'Email' => "RECIPIENT_EMAIL_ADDRESS",
                'Name' => "RECIPIENT_NAME"
            ]
        ],
        'Subject' => "Greetings from Mailjet.",
        'HTMLPart' => "<h3>Dear User, welcome to Mailjet!</h3><br />May the delivery force be with you!"
        ]
    ]
];
  
$client = new Client([
    // Base URI is used with relative requests
    'base_uri' => 'https://api.mailjet.com/v3.1/',
]);
  
$response = $client->request('POST', 'send', [
    'json' => $body,
    'auth' => ['API_KEY', 'SECRET_KEY']
]);
  
if($response->getStatusCode() == 200) {
    $body = $response->getBody();
    $response = json_decode($body);
    if ($response->Messages[0]->Status == 'success') {
        echo "Email sent successfully.";
    }
}

Enviar correo electrónico mediante el servidor SMTP de Mailjet y PHPMailer

En los pasos anteriores, discutimos el uso de la API de correo electrónico de Mailjet para enviar correos electrónicos. En esta sección, le muestro cómo utilizar el servidor SMTP de Mailjet para enviar un correo electrónico a los usuarios.

Desde el panel de control, haga clic en ‘Configurar mi SMTP’. En la página siguiente, obtendrá todas las credenciales SMTP.

Enviar correo electrónico usando Mailjet (alternativa al servidor SMTP de Gmail) en PHP

Veamos cómo usar las credenciales SMTP en PHP y enviar un correo electrónico. Al principio, instale la biblioteca PHPMailer en su proyecto ejecutando el siguiente comando:

composer require phpmailer/phpmailer

A continuación, escriba el siguiente código en su archivo PHP que le enviará un correo electrónico a través de sus credenciales SMTP.

<?php
use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;
  
require_once "vendor/autoload.php";
  
$mail = new PHPMailer(true);
  
try {
    $mail->isSMTP();
    $mail->Host = 'MAILJET_SMTP_SERVER'; // host
    $mail->SMTPAuth = true;
    $mail->Username = 'API_KEY'; //username
    $mail->Password = 'SECRET_KEY'; //password
    $mail->SMTPSecure = 'tls';
    $mail->Port = 587; //smtp port
    
    $mail->setFrom('SENDER_EMAIL_ADDRESS', 'SENDER_NAME');
    $mail->addAddress('RECIPIENT_EMAIL_ADDRESS', 'RECIPIENT_NAME');
  
    $mail->isHTML(true);
    $mail->Subject = 'Email Subject';
    $mail->Body    = '<b>Email Body</b>';
  
    $mail->send();
    echo 'Email has been sent.';
} catch (Exception $e) {
    echo 'Email could not be sent. Mailer Error: '. $mail->ErrorInfo;
}

Enviar correo electrónico mediante el servidor SMTP de Mailjet y Swift Mailer

Al igual que PHPMailer, Swift Mailer también es una biblioteca popular útil para enviar un correo electrónico utilizando el servidor SMTP. Debe tener PHP versión 7.0 o superior para enviar correos electrónicos usando la biblioteca Swift Mailer. Instale la biblioteca Swift Mailer usando el comando:

composer require swiftmailer/swiftmailer

Tras la instalación de la biblioteca, con las credenciales del servidor SMTP de Mailjet, puede enviar el correo electrónico a través del código siguiente.

<?php
require_once 'vendor/autoload.php';
  
try {
    // Create the Transport
    $transport = (new Swift_SmtpTransport('MAILJET_SMTP_SERVER', 587, 'tls'))
      ->setUsername('API_KET')
      ->setPassword('SECRET_KEY')
    ;
  
    // Create the Mailer using your created Transport
    $mailer = new Swift_Mailer($transport);
  
    // Create a message
    $body = '<b>Email Body</b>';
  
    $message = (new Swift_Message('Email Subject'))
      ->setFrom(['SENDER_EMAIL_ADDRESS' => 'SENDER_NAME'])
      ->setTo(['RECIPIENT_EMAIL_ADDRESS'])
      ->setBody($body)
      ->setContentType('text/html')
    ;
  
    // Send the message
    $mailer->send($message);
  
    echo 'Email has been sent.';
} catch(Exception $e) {
    echo $e->getMessage();
}

Reemplace los marcadores de posición con los valores reales y pruebe el código. El destinatario debería haber recibido el correo electrónico.

Conclusión

En este tutorial, estudiamos la API de correo electrónico y la retransmisión SMTP de Mailjet. Hablamos de enviar un correo electrónico a través de la API de correo electrónico de Mailjet utilizando cURL y Guzzle. Mailjet proporciona un servidor SMTP, por lo que hemos escrito un código que utiliza el servidor Mailjet SMTP y envía un correo electrónico a los usuarios. Entonces, según estas 3 opciones, los usuarios pueden elegir cualquiera de las opciones según los requisitos de su proyecto.

Artículos relacionados

Fuente de grabación: artisansweb.net

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More