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

 

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

你也會喜歡

IT新聞, WordPress

2026-07-24

wp2shell:WordPress用戶的注意事項

wp2shell是WordPress 最新的重大安全漏洞。過去WordPress漏洞主要是針對第三方插件(Pl […]

服務通告, 科比教室

2026-07-23

搬遷Weebly網站到科比主機

1、請問 Weebly 發生什麼事情? 根據官方公告,Weebly 將會停止包括台灣在內等67個國家地區服務,

IT新聞, WordPress, 服務通告

2026-07-21

WordPress七月份重大安全漏洞

WordPress 被發現重大安全漏洞 CVE-2026-63030 以及 CVE-2026-60137,相關

服務通告, 科比服務

2026-07-11

Weebly 停止服務問與答

最近我們有收到不少關於 Weebly 轉移的查詢,我們整理了一些用戶查詢,給各位參考。 1、請問 Weebly

服務通告

2026-07-06

Joomla 最新安全漏洞通知

我們在過去一個星期偵測到,部分舊版本Joomla 網站有被嘗試植入,甚至已經被植入惡意軟體的痕跡。而大部分植入 […]

IT新聞, WordPress, 服務通告

2026-05-19

WordPress插件更新事故通知

如果你的WordPress網站今天突然掛掉,可以留意一下是不是有安裝 「Shortcodes Ultimate […]

買主機送網域

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

買主機送網域

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

買主機送網域

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