...
✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Lähetä sähköpostia käyttämällä PHP: n Mailjet-ohjelmaa (vaihtoehto Gmailin SMTP-palvelimelle)

28

Verkkosivustojen omistajien on säännöllisesti lähetettävä sähköposteja käyttäjillemme. Jos käytät PHP: n sähköposti() -toimintoa sähköpostien lähettämiseen, huomaat pian, että sähköpostisi päättyvät roskapostiin eivätkä käyttäjän postilaatikkoon. Tämän seurauksena suurin osa käyttäjistä ei huomaa tärkeitä sähköpostejasi. Tämän ongelman ratkaisemiseksi sinun on käytettävä SMTP-palvelimia sähköpostien lähettämiseen.

Gmailin SMTP-palvelin on melko suosittu valinta kehittäjien keskuudessa. Mutta tämän Google-palvelun käytössä on 2 ongelmaa. Ensinnäkin et voinut asettaa lähettäjäosoitetta sähköpostin lähettämisen aikana. Gmail asetti sähköpostiosoitteesi (Google-sähköpostitunnus) lähettäjän osoitteeksi. Toiseksi sinun on otettava käyttöön ‘salli vähemmän turvalliset sovellukset’ -asetus, jota Google ei suosittele.

Näiden rajoitusten välttämiseksi löysin vaihtoehtoisen ratkaisun Gmail SMTP -palvelimelle, joka on Mailjet. Mailjet on sähköpostin toimituspalvelu markkinointi- ja kehitystiimeille. Voimme lähettää sähköpostia helposti PHP: n Mailjetin avulla. He tarjoavat oman sähköpostisovellusliittymän ampua sähköposteja. Voit käyttää myös heidän SMTP-palvelua.

Päästä alkuun

Mailjet tarjoaa kiintiön, joka on 6000 ilmaista sähköpostia kuukaudessa (200 sähköpostia päivässä). Pienyrityksille tämä ilmainen kiintiö on riittävä. Jos yrityksesi tarvitsee lisää sähköposteja, tutustu niiden hinnoittelusivulle.

Rekisteröintiprosessin aikana sinua pyydetään valitsemaan lähetystapa. Tässä opetusohjelmassa keskustelemme sekä sähköpostisovellusliittymästä että SMTP-välityksestä, joten toistaiseksi poimi sovellusliittymävaihtoehto.

Lähetä sähköpostia käyttämällä PHP: n Mailjet-ohjelmaa (vaihtoehto Gmailin SMTP-palvelimelle)

Seuraa seuraavia vaiheita. Napsauta alla olevasta ruudusta Aloita-painiketta kehittäjäosiossa.

Lähetä sähköpostia käyttämällä PHP: n Mailjet-ohjelmaa (vaihtoehto Gmailin SMTP-palvelimelle)

Tartu API-avaimiin siirtymällä Tilin asetukset -kohtaan. Napsauta seuraavalla sivulla REST API -osiossa ‘Master API key & Sub API key management’. Kopioi seuraavissa vaiheissa vaadittava API-avain ja Secret-avain.

Lähetä sähköpostia käyttämällä PHP: n Mailjet-ohjelmaa (vaihtoehto Gmailin SMTP-palvelimelle)

Mailjet antaa meille mahdollisuuden asettaa lähettäjän osoite. Napsauta Lähettäjät ja verkkotunnukset -kohdassa Lisää lähettäjän toimialue tai osoitteet ja lisää seuraavalla sivulla lähettäjän osoite.

Lähetä sähköpostia käyttämällä PHP: n Mailjet-ohjelmaa (vaihtoehto Gmailin SMTP-palvelimelle)

Jos asetat muuta osoitetta kuin tilisi sähköpostiosoite, saat sähköpostin vahvistusta varten.

Lähetä sähköpostia Mailjetin avulla cURL: n kautta PHP: ssä

Olemme valmiita API-avaimillamme ja valmiit lähettämään sähköpostia Mailjetin ja PHP: n cURL: n avulla. Varmista, että palvelimellasi on cURL käytössä, muuten seuraava koodi ei toimi odotetulla tavalla. Korvaa paikkamerkit todellisilla arvoilla ennen alla olevan koodin suorittamista.

<?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.";
}

Lähetä sähköpostia Mailjetin kautta Guzzlen avulla PHP: ssä

Voit käyttää sähköpostiviestejäsi Guzzlen avulla. Luultavasti sovelluksesi toimii kehyksessä tai CMS: ssä, jossa käytät Composeria kirjastojen hallintaan. Tällöin Guzzle olisi parempi vaihtoehto kuin cURL.

Asenna näissä tilanteissa Guzzle-kirjasto suorittamalla komento:

composer require guzzlehttp/guzzle

Kun olet asentanut kirjaston, voit lähettää sähköpostia käyttämällä alla olevaa koodia käyttämällä Guzzlea PHP: ssä.

<?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.";
    }
}

Lähetä sähköpostia Mailjet SMTP -palvelimen ja PHPMailerin avulla

Edellä mainituissa vaiheissa keskustelimme Mailjet email -sovellusliittymän käytöstä sähköpostiviestien lähettämiseen. Tässä osassa näytän sinulle, kuinka Mailjet SMTP -palvelinta voidaan käyttää sähköpostin lähettämiseen käyttäjille.

Napsauta hallintapaneelissa kohtaa "Asenna SMTP". Seuraavalta sivulta saat kaikki SMTP-tunnistetiedot.

Lähetä sähköpostia käyttämällä PHP: n Mailjet-ohjelmaa (vaihtoehto Gmailin SMTP-palvelimelle)

Katsotaanpa, kuinka käyttää SMTP-tunnistetietoja PHP: ssä ja lähettää sähköpostia. Asenna ensin PHPMailer-kirjasto projektiisi suorittamalla seuraava komento:

composer require phpmailer/phpmailer

Kirjoita seuraavaksi alla oleva koodi PHP-tiedostoon, joka lähettää sähköpostin SMTP-kirjautumistietojesi kautta.

<?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;
}

Lähetä sähköpostia Mailjet SMTP -palvelimen ja Swift Mailerin avulla

Kuten PHPMailer, Swift Mailer on myös suosittu kirjasto, joka on hyödyllinen sähköpostin lähettämiseen SMTP-palvelimen avulla. Sinulla on oltava PHP-versio 7.0 tai uudempi, jotta voit lähettää sähköpostia Swift Mailer -kirjaston avulla. Asenna Swift Mailer -kirjasto komennolla:

composer require swiftmailer/swiftmailer

Kirjaston asennuksen yhteydessä voit lähettää sähköpostin Mailjet SMTP -palvelimen tunnistetiedoilla alla olevan koodin kautta.

<?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();
}

Korvaa paikkamerkit todellisilla arvoilla ja testaa koodi. Vastaanottajan olisi pitänyt saada sähköposti.

Johtopäätös

Tässä opetusohjelmassa tutkimme Mailjetin sähköpostisovellusliittymää ja SMTP-välitystä. Keskustelimme sähköpostin lähettämisestä Mailjet email API: n kautta käyttämällä cURL: ää ja Guzzlea. Mailjet tarjoaa SMTP-palvelimen, joten olemme kirjoittaneet koodin, joka käyttää Mailjet SMTP -palvelinta ja lähettää sähköpostin käyttäjille. Joten näiden kolmen vaihtoehdon perusteella käyttäjät voivat valita minkä tahansa vaihtoehdoista projektivaatimuksensa mukaan.

Aiheeseen liittyvät artikkelit

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja