如何用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年經驗與眾多口碑青睞,網頁相關服務都可以交給我們!

 

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

你也會喜歡

服務通告

2025-03-21

補助客戶這麼多,我們怎麼賺?

我們的補助方案已經實施數月,最多可享[買一年送三年]的優惠,等於付一年費用最多可使用四年。有些客戶因此提早將網 […]

個案分享

2025-03-12

舊廠商不到七天就到期,還能轉移嗎?

最近我們有協助不少將近到期的客戶從其他廠商轉移過來,特別在這分享需要需要注意的事項。 就我們過去協助客戶所知道 […]

個案分享

2025-02-06

企業郵箱需要注意的資安問題

資安問題基本上是老生常談,也許我們已經寫過很多遍都差不多,不過用家會犯的錯的確來來去去也是這幾個。 1. 透過 […]

WordPress, 個案分享

2025-02-06

網域已經過期,如何備份WordPress?

前幾天收到查詢,網域已經過期,不清楚網站放在哪,不過有WordPress管理員權限,那還可以做備份嗎? 答案是 […]

科比教室

2024-12-31

網域剛註冊就被鎖?

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

WordPress

2024-12-19

WordPress插件Elementor更新問題

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

買主機送網域

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

買主機送網域

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

買主機送網域

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