首頁 後端開發 php教程 PHP程式設計有哪些常見的郵件發送操作?

PHP程式設計有哪些常見的郵件發送操作?

Jun 12, 2023 am 09:27 AM
郵件發送 phpmailer smtp配置

在PHP程式設計中,郵件發送操作是非常常見的。通常可以使用郵件發送來實現系統通知、郵件訂閱、密碼重設、活動邀請等功能。下面我們來看看PHP程式設計中常見的郵件發送操作。

一、使用mail()函數傳送郵件

在PHP中最簡單直接的發郵件方式就是使用mail()函數。這個函數是PHP自帶的函數,無需安裝其他擴充功能。下面是一個簡單的使用mail()函數發送郵件的範例程式碼:

$to = '收件人邮箱';
$subject = '邮件主题';
$message = '邮件内容';
$headers = 'From: 发件人邮箱' . "
" .
           'Reply-To: 发件人邮箱' . "
" .
           'X-Mailer: PHP/' . phpversion();

mail($to, $subject, $message, $headers);
登入後複製

這裡的$headers是郵件頭訊息,需要設定From、Reply-To等訊息。使用mail()函數發送郵件的時候需要注意以下幾點:

  1. $to變數需要設定為接收郵件的郵件地址;
  2. $headers變數中的From和Reply -To需要設定為寄件者信箱位址;
  3. 若寄件者位址與伺服器不在同一網域下,會被部分郵件伺服器攔截或視為垃圾郵件;
  4. 郵件寄送的過程可能會較慢,如果出現等待時間過長的情況可以使用多線程異步發送;
  5. 由於mail()函數使用的是系統原生郵件發送功能,發送過程中可能會出現被視為垃圾郵件或被防火牆攔截的情況。

二、使用SMTP伺服器發送郵件

使用SMTP伺服器發送郵件相比使用mail()函數來說能夠更好地避免被視為垃圾郵件的問題。目前有一些優秀的PHP SMTP類別庫可供使用,如PHPMailer。這個類別庫有很強的可自訂性以及友善的API接口,支援SMTP伺服器的純文字郵件、HTML郵件、附件郵件等發送方式。以下是使用PHPMailer發送純文字郵件的範例程式碼:

use PHPMailerPHPMailerPHPMailer;
use PHPMailerPHPMailerException;

require 'path/to/PHPMailer/src/Exception.php';
require 'path/to/PHPMailer/src/PHPMailer.php';
require 'path/to/PHPMailer/src/SMTP.php';

$mail = new PHPMailer(true);
$mail->isSMTP();

try {
  $mail->SMTPDebug = 0;
  $mail->Host       = 'smtp.example.com';
  $mail->SMTPAuth   = true;
  $mail->Username   = '发件人邮箱';
  $mail->Password   = '发件人邮箱密码';
  $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
  $mail->Port       = 465;

  $mail->setFrom('发件人邮箱');
  $mail->addAddress('收件人邮箱');
  $mail->Subject = '邮件主题';
  $mail->Body = '邮件内容';

  $mail->send();

  echo '邮件发送成功';
} catch (Exception $e) {
  echo "邮件发送失败:{$mail->ErrorInfo}";
}
登入後複製

這段程式碼基於PHPMailer類別庫實現,可以透過Composer直接安裝,並引入Exception、PHPMailer和SMTP三個檔案後即可使用。值得注意的是,這裡的寄件者信箱需要與SMTP服務商提供的寄件者地址一致,否則會出現「寄件者驗證失敗」的問題。

三、使用第三方郵件服務發送郵件

在企業級或需要大量郵件發送的應用程式中,可以考慮使用第三方郵件服務供應商,如SendGrid、Mailgun等。這些服務提供者通常透過API介面與客戶端連接,節省了客戶端與SMTP伺服器直接建立連接的過程,並且可以享受到更好的郵件發送服務。以下是使用SendGrid發送郵件的範例程式碼:

$url = 'https://api.sendgrid.com/v3/mail/send';

$data = array(
    "personalizations" => array(
        array(
            "to" => array(
                 array(
                     "email" => "收件人邮箱"
                  )
            ),
            "subject" => "邮件主题"
        )
    ),
    "from" => array(
        "email" => "发件人邮箱"
    ),
    "content" => array(
        array(
            "type" => "text/plain",
            "value" => "邮件内容"
        )
    )
);

$options = array(
    'http' => array(
        'method' => 'POST',
        'header' => array(
            'Content-Type: application/json',
            'Authorization: Bearer ' . 'SendGrid API KEY'
        ),
        'content' => json_encode($data),
    ),
);
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
$response = json_decode($result, true);

if (in_array(substr($response['status'], 0, 1), array(
     '2', '3'
))) {
    echo '邮件发送成功';
} else {
    echo '邮件发送失败';
}
登入後複製

這個範例程式碼用到了SendGrid提供的API接口,需要提前在SendGrid官網上註冊並取得API KEY。由於SendGrid是收費服務提供者,因此使用前需要針對業務情況選擇合適的套餐以及發送量。

總結

本文介紹了PHP程式設計中常見的郵件傳送操作,包括使用mail()函數、使用SMTP伺服器傳送郵件,以及使用第三方郵件服務傳送郵件。由於郵件發送相關的技術和策略變化較快,建議開發者在實際應用中結合具體需求和實驗情況選擇最適合自己的郵件發送方式。

以上是PHP程式設計有哪些常見的郵件發送操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何使用PHP和Vue實現郵件發送功能 如何使用PHP和Vue實現郵件發送功能 Sep 27, 2023 pm 08:45 PM

如何使用PHP和Vue實現郵件發送功能隨著互聯網的快速發展,電子郵件成為了人們日常生活和工作的重要組成部分。在網站和應用程式中,實現郵件發送功能也變得越來越常見。本文將介紹如何使用PHP和Vue結合,來實現郵件發送功能,並提供具體的程式碼範例。一、PHP實作郵件發送功能PHP是一種伺服器端腳本語言,具有處理郵件的強大能力。以下是使用PHP實作郵件傳送功能的步驟

PHP開發實務:使用PHPMailer傳送郵件到MySQL資料庫的用戶 PHP開發實務:使用PHPMailer傳送郵件到MySQL資料庫的用戶 Aug 05, 2023 pm 06:21 PM

PHP開發實務:使用PHPMailer發送郵件到MySQL資料庫中的使用者引言:在現代互聯網建設中,郵件是一種重要的溝通工具。無論是用戶註冊、密碼重置,還是電子商務中的訂單確認,發送電子郵件都是必不可少的功能。本文將介紹如何使用PHPMailer來傳送電子郵件,並將郵件資訊儲存到MySQL資料庫中的使用者資訊表中。一、安裝PHPMailer庫PHPMailer是

如何使用PHP和PHPMAILER發送帶有內嵌圖片的HTML郵件? 如何使用PHP和PHPMAILER發送帶有內嵌圖片的HTML郵件? Jul 22, 2023 am 11:29 AM

如何使用PHP和PHPMAILER發送帶有內嵌圖片的HTML郵件? HTML郵件是一種更豐富和個人化的郵件形式,可以在郵件中插入圖片、連結和樣式。而內嵌圖片是指在HTML郵件中直接將圖片作為郵件的一部分發送,而不是透過附件方式發送。在PHP中,我們可以藉助PHPMAILER來傳送帶有內嵌圖片的HTML郵件。 PHPMAILER是一個功能強大的PHP郵件發送類別庫

PHP和PHPMAILER:如何實現郵件發送的防垃圾郵件功能? PHP和PHPMAILER:如何實現郵件發送的防垃圾郵件功能? Jul 22, 2023 am 11:46 AM

PHP和PHPMAILER:如何實現郵件發送的防垃圾郵件功能?引言:在網路時代,電子郵件已經成為了我們日常生活和工作中不可或缺的一部分。然而,隨著電子郵件的普及和使用,垃圾郵件問題日益嚴重,這給用戶帶來了許多困擾。為了解決這個問題,本文將介紹如何利用PHP和PHPMailer庫實現郵件發送的防垃圾郵件功能。一、了解垃圾郵件垃圾郵件(Spam),指的是那些未經

掌握PHP和PHPMAILER:如何實現郵件發送的自動回覆功能? 掌握PHP和PHPMAILER:如何實現郵件發送的自動回覆功能? Jul 22, 2023 am 11:57 AM

掌握PHP和PHPMAILER:如何實現郵件發送的自動回覆功能?在現代社會中,電子郵件成為了人們日常溝通的重要方式之一。許多網站或企業都需要透過郵件與使用者溝通和交流,而自動回覆郵件變得非常重要。本文將介紹如何使用PHP和PHPMailer庫實現郵件傳送的自動回覆功能。第一步:取得使用者的郵件資訊首先,我們需要取得使用者的郵件資訊。在網站或應用程式中,用

qq信箱怎麼發送郵件 qq信箱怎麼發送郵件 Apr 03, 2024 pm 02:42 PM

1.開啟qq信箱官網,輸入QQ帳號及密碼點選登入。 2.在信箱首頁右上角,有一個【寫郵件】按鈕,點選即可進入郵件編輯頁面。 3、在郵件編輯頁面填寫郵件主旨、收件者、副本、密送、郵件正文等內容。 4.如果需要新增附件,可以點選頁面下方的【新增附件】按鈕,並選擇要上傳的檔案。 5.當郵件編輯完成後,點選頁面下方的【傳送】按鈕即可將郵件寄出去。

PHP郵件附件發送:為郵件增加更多樂趣和功能! PHP郵件附件發送:為郵件增加更多樂趣和功能! Sep 19, 2023 am 11:58 AM

PHP郵件附件發送:為郵件增加更多樂趣和功能!隨著網路的發展,電子郵件已成為人們日常生活和工作中不可或缺的一部分。無論是用於與朋友和家人交流,還是用於商務往來,發送郵件已經成為一種非常常見的溝通方式。而隨著科技的進步,我們可以透過PHP程式語言輕鬆實現郵件附件發送,為郵件增加更多的樂趣和功能。在PHP中,我們可以使用郵件傳送協定(SMTP)來傳送郵件,並且通

如何在CakePHP中使用PHPMailer? 如何在CakePHP中使用PHPMailer? Jun 04, 2023 pm 01:10 PM

CakePHP是一個基於MVC模式的PHP開源框架,旨在為開發者提供高效、可擴展、易於維護的Web應用程式開發環境。其中,郵件功能一直是Web應用程式的重要組成部分之一。為了方便開發者使用郵件功能,在CakePHP中已經封裝了PHPMailer類別庫。 PHPMailer是一款常用的郵件發送類別庫,支援傳送HTML郵件、附件、副本、郵件佇列和SMTP驗證等功能。本

See all articles