如何用composer安裝phpmailer(含設定教學)

2024-03-13

教學目的主要有兩個
– 讓用家掌握使用終端(Terminal)及Composer的流程
-了解SMTP設定

為何需要phpmailer發送電郵?

近年垃圾電郵問題越趨嚴重,相對的主要電郵服務商如Yahoo跟Google一直在提高一些返垃圾電郵(Anti-spam)的要求。這個情況下單純使用php sendmail發送電郵很容易會被錯誤辨識為垃圾郵件,又或者需要複雜的Email Header設定才能達到成功送達效果,而phpmailer就是其中一個簡單的解決方案。

  1. 首先登入Directadmin網上控制台,進入”系統資訊和檔案” > “終端”。

  2. 先進入public_html 資料夾(假設php script需要公開),然後輸入安裝指令

    composer require phpmailer/phpmailer



  3. 安裝完成後,可以參考以下示範
    (源始碼來自 https://github.com/PHPMailer/PHPMailer )
  4. 特別留意源始碼的登入設定,包括

    $mail->Host = ‘mail.floppy-demo.com’;
    如果使用Gmail發送電郵,主機名稱應該是smtp.gmail.com

    $mail->Username = ‘[email protected]’;
    $mail->Password = ‘PASSWORD’;
    如果使用Gmail發送電郵,電郵密碼應該是App Password,不懂如果取得可參考這個教學。 
<?php
//Import PHPMailer classes into the global namespace
//These must be at the top of your script, not inside a function
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;

//Load Composer's autoloader
require 'vendor/autoload.php';

//Create an instance; passing `true` enables exceptions
$mail = new PHPMailer(true);

try {
    //Server settings
    $mail->SMTPDebug = SMTP::DEBUG_SERVER;                      //Enable verbose debug output
    $mail->isSMTP();                                            //Send using SMTP
    $mail->Host       = 'mail.floppy-demo.com';                     //Set the SMTP server to send through
    $mail->SMTPAuth   = true;                                   //Enable SMTP authentication
    $mail->Username   = '[email protected]';                     //SMTP username
    $mail->Password   = 'PASSWORD';                               //SMTP password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;            //Enable implicit TLS encryption
    $mail->Port       = 465;                                    //TCP port to connect to; use 587 if you have set `SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS`

    //Recipients
    $mail->setFrom('[email protected]', '寄件者名稱');
    $mail->addAddress('[email protected]', '收件者名稱');     //Add a recipient


    //Content
    $mail->isHTML(true);                                  //Set email format to HTML
    $mail->Subject = 'Here is the subject';
    $mail->Body    = 'This is the HTML message body <b>in bold!</b>';
    $mail->AltBody = 'This is the body in plain text for non-HTML mail clients';

    $mail->send();
    echo 'Message has been sent';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}

科比擁有經營虛擬主機、網站代管20年經驗與眾多口碑青睞,網頁相關服務都可以交給我們!

 

優惠的年費與貼心售後服務一直是我們致力想提供給客戶的,持續創新與進步的技術支援、解決需求,希望讓客戶用划算的價格體驗最好的服務!

你也會喜歡

科比教室

2024-12-31

網域剛註冊就被鎖?

最近有客戶向我們查詢,爲甚麼才剛剛申請我們公司的虛擬主機,網站還未上傳就已經被鎖,是不是主機有甚麼安全性問題? […]

WordPress

2024-12-19

WordPress插件Elementor更新問題

我們這幾天收到客戶回報WordPress網站突然出然問題,初步了解全部都是更新插件Elementor至12月1 […]

科比教室

2024-12-06

WordPress轉移後一直被嘗試登入?

最近比較多客戶問我們,為什麼WordPress轉移過來,網站「好像」經常被攻擊?因為搬遷後一直收到「登入嘗試失 […]

科比教室

2024-12-06

(必看)正確網域轉移概念,避免錯失轉移時機

客戶普遍對網域轉移有兩大錯誤觀念,其中一個更讓客戶錯失轉移時機,今天想跟各位分享一下。 錯誤觀念(一):「網域 […]

科比教室

2024-12-06

避免繳交網域「贖金」

有些客人會好奇,為什麼我們會在網站介紹強調「客戶透過我們購買網域具有完整權限」? 因為不一定有呀!我們的立場是 […]

科比教室

2024-12-06

只有FTP帳號,如何導出特大資料庫?

我們經常協助客人把網站從其他廠商搬遷到我們公司,有時舊廠商給的資料不完整,我們也只好替客人想個辦法,關關難過關 […]

買主機送網域

購買虛擬主機,即贈送一年網域名稱

買主機送網域

購買虛擬主機,即送一年網域名

買主機送網域

購買虛擬主機,即贈送一年網域名稱