...
✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Så här skickar du WordPress-e-post med SMTP-server

41

Står du inför problem med att skicka e-post på WordPress? Under huven skickar WordPress e-post med PHP: s e-post() -funktion. Ibland konfigurerar din webbhotell inte e-postinställningarna korrekt. Som ett resultat kan inga e-postmeddelanden skickas från din WordPress-webbplats.

Du kan lösa detta problem med SMTP-servern. Vanligtvis tillhandahåller webbhotell företag sin egen SMTP-server som du kan använda för att skicka e-post till din webbplats.

Alternativt kan du gå till andra SMTP-servrar som Gmail, Mailjet, etc. Allt det kräver grundläggande information om SMTP-servern som värd, port, etc.

Med det sagt, låt oss se hur man använder SMTP-servern för att skicka WordPress-e-post.

PHPMailer i WordPress

WordPress inkluderar PHPMailer-klassen i sin kärna. Om du vill kontrollera den hittar du den här filen under wp-includes/PHPMailer/PHPMailer.php.

Om vi ​​konfigurerar PHPMailer i WordPress wp_mailskickar funktionen e-postmeddelanden via denna PHPMailer-klass. I så fall wp_mailberor metoden inte på värdinställningarna. Istället använder de dina SMTP-serverinställningar.

Jag ska använda den här PHPMailer-klassen för e-postmeddelanden. Eftersom den här klassen redan ingår i WordPress behöver vi inte installera PHPMailer-biblioteket separat.

Man kan använda WP Mail SMTP- plugin som också skickar e-postmeddelanden med SMTP-servrar. Men jag rekommenderar alltid om något kan uppnås genom att skriva en liten kod, gå sedan till det. Det är bra att använda färre plugins som möjligt. Att använda fler plugins på webbplatsen ökar den extra belastningen på servern. Och ibland blir plugins konflikter med varandra som kan hamna på en trasig webbplats.

Skicka WordPress-e-post via SMTP-server

Innan du fortsätter bör du vara redo med dina SMTP-uppgifter som värd, port, användarnamn och lösenord.

Om du planerade att använda Gmail SMTP-servern måste du ändra vissa inställningar på ditt Google-konto. Logga in på ditt Google-konto för detta och klicka på Kontot. När du är på kontosidan klickar du på Säkerhet. Rulla ner till botten så hittar du inställningarna för ‘Mindre säker appåtkomst’. Ställ den på PÅ.

Så här skickar du WordPress-e-post med SMTP-server

För att konfigurera PHPMailer i WordPress finns det en krok tillgänglig som är phpmailer_init. Med hjälp av phpmailer_inithook kan vi komma åt PHPMailer-objektet och ställa in argumenten på det.

Öppna ditt aktiva temas functions.phpfil och placera koden nedan i slutet av en fil.

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'YOUR_SMTP HOST';
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 'SMTP_PORT'; //25 or 465
    $phpmailer->Username = 'SMTP_USERNAME';
    $phpmailer->Password = 'SMTP_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl'; //ssl or tls
}

Se till att ersätta platshållarna med de faktiska värdena. Låt oss säga att vi använder Gmail SMTP-server så kommer vår kod att skrivas enligt följande:

add_action( 'phpmailer_init', 'set_phpmailer_details' );
function set_phpmailer_details( $phpmailer) {
    $phpmailer->isSMTP();     
    $phpmailer->Host = 'smtp.googlemail.com'; //gmail smtp host
    $phpmailer->SMTPAuth = true;
    $phpmailer->Port = 465;
    $phpmailer->Username = 'GMAIL_USERNAME';
    $phpmailer->Password = 'GMAIL_PASSWORD';
    $phpmailer->SMTPSecure = 'ssl';
}

Du måste skicka det faktiska användarnamnet och lösenordet för ditt Gmail-konto i ovanstående kod. Försök nu skicka e-post från din WordPress-webbplats, e-post bör börja fungera.

Felsöka e-postproblemet

Just nu, även efter att du har använt PHPMailer, fungerar dina e-postmeddelanden inte och då kan wp_mail_faileddu få orsaken till problemet med hjälp av åtgärden. Använd koden nedan för att felsöka problemet.

add_action('wp_mail_failed', 'log_mailer_errors', 10, 1);
function log_mailer_errors( $wp_error ){
    $fn = ABSPATH. '/mail.log'; // say you've got a mail.log file in your server root
    $fp = fopen($fn, 'a');
    fputs($fp, "Mailer Error: ". $wp_error->get_error_message() ."n");
    fclose($fp);
}

Jag hoppas att du förstår hur du skickar WordPress-e-postmeddelanden med SMTP-servern. Dela dina tankar och förslag i kommentarsektionen nedan.

relaterade artiklar

Inspelningskälla: artisansweb.net

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer