首頁 > 後端開發 > php教程 > 使用Symfony Mailer發送PHP中的電子郵件

使用Symfony Mailer發送PHP中的電子郵件

Joseph Gordon-Levitt
發布: 2025-03-05 09:55:09
原創
883 人瀏覽過

Send Emails in PHP Using Symfony Mailer

本文將深入探討Symfony Mailer庫,該庫允許您從PHP應用程序發送電子郵件。從安裝和配置開始,我們將逐步講解一個真實的示例,演示使用Symfony Mailer庫發送電子郵件的各個方面。

什麼是Symfony Mailer?

在PHP應用程序中發送電子郵件時,您可以選擇多種方法。您甚至可能最終創建自己的包裝器來快速設置電子郵件功能。但是,如果您使用的是維護良好且功能豐富的庫,那麼您總是很幸運的。

Symfony Mailer是一個流行的庫,用於從PHP應用程序發送電子郵件,並且被PHP社區廣泛接受。它是一個功能豐富的庫,因為它涵蓋了發送電子郵件的幾乎所有方面,從設置不同的傳輸方式到自定義正在發送的消息。此外,如果您聽說過Swift Mailer庫,它是Symfony Mailer庫的前身——Symfony Mailer是新改進的版本。

事實上,使用Symfony Mailer庫發送電子郵件是一個非常簡單的過程。

  1. 初始化傳輸(SMTP或sendmail)對象
  2. 使用該傳輸初始化郵件器對象
  3. 初始化電子郵件對象
  4. 格式化並發送郵件

在下一節中,我們將通過一個真實的示例來演示上述每個步驟。

  1. 安裝和配置

在本節中,我將向您展示如何安裝和配置Symfony Mailer庫。安裝非常簡單,因為它已經作為Composer包可用。在我們繼續之前,請確保您已安裝Composer,因為我們需要它來安裝Symfony Mailer庫。

安裝Composer後,使用以下命令獲取Symfony Mailer庫。

$ composer require symfony/mailer
登入後複製
登入後複製

這樣,Symfony Mailer庫應該已經安裝,以及vendor目錄中必要的依賴項。新創建的composer.json的內容應如下所示:

{
    "require": {
        "symfony/mailer": "^5.4"
    }
}
登入後複製
登入後複製

這就是安裝部分,但是您應該如何使用它呢?這只是在您的應用程序中包含Composer創建的autoload.php文件的問題,如下面的代碼片段所示。

<?php
require_once './vendor/autoload.php';

// your application code...
?>
登入後複製
登入後複製
  1. 創建一個電子郵件腳本

我們已經探討瞭如何使用Composer安裝Symfony Mailer庫。現在讓我們開始實現一個真實的示例。

繼續創建包含以下內容的email.php文件。

<?php
require_once './vendor/autoload.php';

use Symfony\Component\Mailer\Transport;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mime\Email;

// 创建一个传输对象
$transport = Transport::fromDsn('smtp://username:password@hostname:port');

// 创建一个邮件器对象
$mailer = new Mailer($transport);

// 创建一个电子邮件对象
$email = (new Email());

// 设置“发件人地址”
$email->from('sender@example.test');

// 设置“收件人地址”
$email->to('recepient@example.test');

// 设置“主题”
$email->subject('使用Symfony Mailer库的演示邮件。');

// 设置纯文本“正文”
$email->text('这是邮件的纯文本正文。\n感谢,\n管理员');

// 设置HTML“正文”
$email->html('这是邮件的HTML版本。<br><br>内联图像示例:<br><img src="/static/imghw/default1.png" data-src="http://publicdata.comcid:nature" class="lazy" alt="Send Emails in PHP Using Symfony Mailer "><br><br>感谢,<br>管理员');

// 添加“附件”
$email->attachFromPath('/path/to/example.txt');

// 添加“图像”
$email->embed(fopen('/path/to/mailor.jpg', 'r'), 'nature');

// 发送邮件
$mailer->send($email);
登入後複製
登入後複製

讓我們來看看這段代碼是如何工作的。

步驟1:初始化Symfony Mailer

Symfony Mailer庫在發送電子郵件時支持不同的傳輸方式,如SMTP和Sendmail。因此,您需要做的第一件事是初始化SendmailTransport對象。

$transport = new SendmailTransport();
登入後複製
登入後複製

創建傳輸後,我們需要初始化一個Email對象並用必要的屬性裝飾它。

$ composer require symfony/mailer
登入後複製
登入後複製

現在,我們將使用from方法設置電子郵件的“發件人”地址。

{
    "require": {
        "symfony/mailer": "^5.4"
    }
}
登入後複製
登入後複製

接下來,讓我們設置電子郵件的“收件人”地址。

<?php
require_once './vendor/autoload.php';

// your application code...
?>
登入後複製
登入後複製

步驟3:附加文件

接下來,讓我們看看如何將文件附加到電子郵件。

您可以使用text方法。

<?php
require_once './vendor/autoload.php';

use Symfony\Component\Mailer\Transport;
use Symfony\Component\Mailer\Mailer;
use Symfony\Component\Mime\Email;

// 创建一个传输对象
$transport = Transport::fromDsn('smtp://username:password@hostname:port');

// 创建一个邮件器对象
$mailer = new Mailer($transport);

// 创建一个电子邮件对象
$email = (new Email());

// 设置“发件人地址”
$email->from('sender@example.test');

// 设置“收件人地址”
$email->to('recepient@example.test');

// 设置“主题”
$email->subject('使用Symfony Mailer库的演示邮件。');

// 设置纯文本“正文”
$email->text('这是邮件的纯文本正文。\n感谢,\n管理员');

// 设置HTML“正文”
$email->html('这是邮件的HTML版本。<br><br>内联图像示例:<br><img src="/static/imghw/default1.png" data-src="http://publicdata.comcid:nature" class="lazy" alt="Send Emails in PHP Using Symfony Mailer "><br><br>感谢,<br>管理员');

// 添加“附件”
$email->attachFromPath('/path/to/example.txt');

// 添加“图像”
$email->embed(fopen('/path/to/mailor.jpg', 'r'), 'nature');

// 发送邮件
$mailer->send($email);
登入後複製
登入後複製

如果要設置郵件的HTML版本,可以使用Mailer對象發送郵件。

$transport = new SendmailTransport();
登入後複製
登入後複製

嘗試運行腳本,您應該會收到一封電子郵件!

結論

今天,我們研究了最流行的PHP電子郵件發送庫之一:Symfony Mailer。使用此庫,您可以輕鬆地從PHP腳本發送電子郵件。

以上是使用Symfony Mailer發送PHP中的電子郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板