搜尋
首頁後端開發php教程PHP主|與Swift Mailer一起發送電子郵件

鑰匙要點

    Swift Mailer是一個功能強大的,基於組件的庫,允許程序員使用面向對象的方法輕鬆發送電子郵件,而SPL擴展名則最小的PHP 5.2或更高要求,最小內存限制為8MB。 Swift Mailer可以通過梨安裝,也可以通過使用FTP上傳文件來安裝。它由150多個類別和接口組成,包括郵件,運輸商,MIME實體,編碼器和插件。
  • > Swift Mailer提供了功能,可以與多個收件人,一個主題和平坦的主體創建電子郵件。它還允許附件,自定義SMTP配置以及跟踪未收到電子郵件的收件人。
  • Swift Mailer還具有一個裝飾插件,可讓您將相同的電子郵件發送給具有較小差異的幾個收件人,例如電子郵件主體內的收件人名稱。這對於將新聞通訊發送給訂閱者等任務是有益的。
  • >
  • 以編程方式發送電子郵件是程序員必須經常處理的常見任務。儘管您可以使用PHP的本機功能,但它們可能太低,尤其是當您想將一個或多個文件附加到消息時。如果您不想使用本機函數,或者您想使用面向對象的方法發送郵件,那麼這就是您的文章。我將向您介紹Swift Mailer,這是一個功能強大的基於組件的庫,可以讓您輕鬆發送電子郵件。 Swift Mailer始於2005年,是一個提供多個類的庫,可讓您從PHP腳本或Web應用程序中發送電子郵件。 Swift Mailer有一些要求,但是它們很小。圖書館需要PHP 5.2或更高,具有SPL擴展名,最小內存限制為8MB。 引用正式文檔,安裝Swift Mailer是微不足道的。通常,這只是將提取的源文件上傳到您的Web服務器的一種情況。安裝庫的最簡單方法是通過梨或使用FTP上傳文件。 從梨通道安裝只是兩個類型命令的問題:
  • 如果您使用共享託管,並且無法訪問命令殼,那麼第二種方法可能是最容易的方法。只需從官方網站下載圖書館並上傳LIB文件夾即可。
  • Swift Mailer classs
  • Swift Mailer由150多個類別和界面組成,將其分成幾個組件。他們每個人都有一個特定的目的。
Mailer:由Swift_mailer類實現的Mailer是庫中的中央類,也是通過方法發送()實際發送電子郵件的中央類。它的構造函數接受了實現接口swift_transport的類的實例,該類別允許您使用自定義SMTP發送電子郵件。
pear channel-discover pear.swiftmailer.org
pear install swift/swift
  • >運輸商:他們實現接口Swift_transport,其範圍是與服務進行通信以傳遞電子郵件。主要類是Swift_smtptransport,它使用SMTP協議,Swift_SendMailTransport,它與本地sendmail可執行文件進行通信,而Swift_mailtransport則依賴於php natival Mail()函數。
  • > MIME實體:這是庫中的關鍵組件。您將用來指定接收器,主題,身體等的類,稱為Swift_message,由幾個分組在一起的實體組成。實體的兩個示例是附件和電子郵件標頭。
  • >編碼器:此組件不是您要處理的,因為它在幕後行動。編碼器有兩種類型:base64和引用打印機。他們的目標是將內容轉換為符合RFC規範的格式。
  • >插件:這些用於擴展Swift Mailer的基本功能。某些插件是防液,它允許您限制單個SMTP連接期間發送的消息數,記錄器,用於登錄發送過程中發生的事情,而Decorator則是一個驚人的插件,它允許您使用電子郵件模板並在電子郵件文本中更改幾個差異。
  • 一個基本示例 到目前為止和我在一起嗎?好的。現在,您已經了解瞭如何在圖書館中組織組件,讓我們弄髒雙手,看看如何利用Swift Mailer的力量和靈活性。在第一個非常簡單的示例中,我將向您展示一個電子郵件的創建,該電子郵件具有兩個收件人,一個主題和一個普通文本的主體。創建後,它將發送給收件人。 以下代碼使用上一節中提到的三個類:swift_mailtransport,swift_mailer和swift_message。此外,請注意代碼的第一行,即需要使用庫需要的Swift Mailer的自動加載器。

    如您所見,Swift_mailtransport用於創建一個將使用本機PHP Mail()函數的傳輸層實例。然後我創建了一個swift_message 您可以將其視為電子郵件對象的實例。在以下幾行中,我使用Setto()方法,使用setSubject(),使用setBody()的電子郵件主體以及使用setFrom()方法來設置收件人。通過定義的層和創建的電子郵件,是時候實際發送電子郵件了,該電子郵件是使用Swift_mailer類的send()方法完成的。

    一個帶有附件的示例
    pear channel-discover pear.swiftmailer.org
    pear install swift/swift
    毫無疑問,附件是當今電子郵件系統的主要內容。沒有他們,沒有人可以活著。這個稍微複雜的示例將向您展示如何發送一封電子郵件,不僅具有附件,而且還具有其他功能。

    >另外兩個接收器,一個在CC中,第二個接收器使用setcc()和setBcc()。
  • >使用附加方法從磁盤檢索的一個附件。
  • >使用swift_smtptransport類的自定義SMTP配置。
  • 知道哪些收件人尚未使用send()方法的第二個參數收到電子郵件。
  • >
  • 我使用了不同的傳輸層,一個使用Swift_smtptransport類設置的SMTP
    pear channel-discover pear.swiftmailer.org
    pear install swift/swift
    。它接受兩個參數:SMTP服務器和連接端口。您可以使用該實例設置適當的用戶名和密碼,以使用setUsername()和setPassword()方法訪問服務器。然後,就像第一個示例一樣,我創建了一個swift_message對象,並設置收件人,主題等。但是,這次我還利用了SETCC()和SETBCC() 正如您可能猜到的那樣,方法可以使您設置碳複製和盲碳複製收件人。 此示例的關鍵方法是附加(),該方法使用static方法從硬盤中獲取的文件(),該靜態方法從()沿著要附加作為其參數附加的文件的路徑。請注意,這次我還使用Send()方法的第二個參數打印了檢索到的失敗收件人的數量。 使用模板

    第三個也是最後一個示例向您展示瞭如何使用Decorator插件,非常適合將新聞通訊發送給訂戶。它使您可以將相同的電子郵件發送給幾個具有較小差異的收件人,例如電子郵件主體內的收件人名稱。該插件將在模板內(主體)內部查看,並將用設定值替換佔位符。 要使用插件,您首先需要使用registerplugin()方法進行註冊,然後構建和使用替換值數組。在以下代碼中,我將放置兩個佔位符,

    > username> transactions ,這些佔位符將通過參考用戶電子郵件的值替換。 裝飾器插件構造函數接受一個參數:一個值陣列以替換佔位符。此數組的每個值都使用用戶的電子郵件以及包含佔位符補充對的子陣列。這正是$替換陣列的目的。在上面的示例中,作為佔位符,我在兩個括號內使用了一個字符串(即{fullname})但是您可以使用任何想要的東西。這次,我沒有像以前一樣將所有收件人設置為同一語句中的所有收件人,我使用了循環。之所以這樣做,是因為插件攔截了發送過程,讀取收件人電子郵件,並使用替換陣列的值替換了佔位符。

    結論

    在本文中,我展示瞭如何使用Swift Mailer輕鬆發送電子郵件。如您所見,這是一個非常強大的庫,可以使用OOP方法來做很多事情。當然,Swift Mailer還有很多其他方法和課程,我在本文中沒有介紹過。您可以在官方文檔中研究它們,但這應該足以讓您開始毫無麻煩地發送電子郵件。 通過fotolia 圖像 經常詢問有關Swift Mailer的問題

    >如何使用Composer安裝Swift Mailer?

    > Swift Mailer可以使用Composer輕鬆安裝Composer,該工具是PHP中依賴關係管理的工具。要安裝Swift Mailer,您需要在系統上安裝作曲家。安裝了作曲家後,您可以通過在項目目錄中運行以下命令來安裝Swift Mailer:作曲家需要“ Swiftmailer/SwiftMailer:^6.0”。此命令告訴作曲家將Swift Mailer軟件包及其依賴項下載到您的項目中。

    >

    >我如何使用Swift Mailer發送電子郵件?

    >

    >與Swift Mailer一起發送電子郵件涉及創建消息,配置郵件器並發送消息。這是如何使用Swift Mailer發送電子郵件的基本示例:



    require_once'/path/to/vendor/autoload.php'php';
    > - > setSubject('Hello')
    - > setFrom(['john@doe.com'=>'john doe'])
    > - > setto(['receiver@domain.org','elethn @domain.org'=>'a name'])
    - > setBody('這是消息本身');

    > $ transport =(new Swift_smtptransport('smtp.example.org',25))
    > - > setUsername('yourSername'')
    > - > setPassword('your password');

    $ mailer = new swift_mailer($ transport);

    $ $ result = $ mailer-> send($ message) >如何使用Swift Mailer將附件添加到電子郵件中?您可以從路徑,字符串或現有的Swift附件實例附加文件。這是如何從路徑附加文件的示例:

    $ message =(new swift_message())

    - > setSubject('hello'')

    - > setfrom(['john john @doe .com'=>'john doe']))

    - > setto(['receiver@domain.org'])
    - > setBody('這是消息本身')
    - >附加( swift_attachment :: frompath('path/to/to/to/image.jpg'));

    >如何使用Swift Mailer發送HTML電子郵件?

    Swift Mailer允許您通過將郵件的主體設置為HTML字符串並將內容類型設置為“ text/html”來發送HTML電子郵件。這是一個示例:

    $ message =(new Swift_message())
    - > setSubject('Hello')
    - > setFrom(['john@doe.com'=>'john doe']))
    - > setto(['recevive@domain.org'])
    - > setBody('

    這是 html 消息本身 p>','text/html');

    >在發生錯誤時,如何處理Swift Mailer中的錯誤?您可以捕獲這些例外來處理錯誤。這是一個示例:

    嘗試{
    $ result = $ mailer-> send($ messagy)發送電子郵件:'。美元設置。這是一個示例:

    $ transport =(new Swift_smtptransport('smtp.gmail.com',465,'ssl'))
    > - > setUsername('gmail username'your gmail username'' ) > setPassword('您的gmail密碼');

    >如何使用Swift Mailer發送多個電子郵件?

    >

    >您可以通過創建多個消息實例並使用同一Mailer實例發送多個電子郵件,並通過Swift Mailer發送多個電子郵件。這是一個示例:

    $ message1 =(new swift_message())
    - > setSubject('Hello')
    - > setFrom(['john@doe.com'=>'john john doe']))
    - > setto(['receviver1@domain.org'])
    > - > setBody('這是消息本身');

    $ message2 =(new Swift_message())

    - > setSubject('Hello')

    - > setFrom(['john@doe.com'=>'John Doe ']))
    - > setto(['receiver2@domain.org'])
    - > setBody('這是消息本身') ;

    $ result1 = $ mailer-> send($ message1);
    $ result2 = $ mailer-> send($ message2);
    >
    >我如何使用Swift使用SYMFONY?

    Swift Mailer與Symfony集成在一起,可以用作服務。您可以通過獲取郵件服務並使用它發送消息來與Swift Mailer一起發送電子郵件。這是一個示例:

    $ message =(new Swift_message())
    - > setSubject('Hello')
    - > setFrom(['john@doe.com'=>'john doe']))
    - > setto(['recevive@domain.org'])
    - > setBody('這是消息本身');

    $ this-> get(' mailer') - > send($ message);

    >

    >如何使用Swift Mailer?
    >您可以通過在消息實例上調用SetPriority方法來設置電子郵件的優先級。優先級是1(最高)和5(最低)之間的整數。這是一個示例:

    $ message =(new Swift_message())
    - > setSubject('Hello')
    - > setFrom(['john@doe.com'=>'john doe']))
    - > setto(['recevive@domain.org'])
    > setBody('這是消息本身')
    > - > setPriority(1);

    >如何使用Swift Mailer異步發送電子郵件?但是,您可以使用消息隊列實現這一目標。您可以加入消息,然後將它們發送到單獨的過程中。這允許您的應用程序繼續處理其他任務而無需等待發送電子郵件。 >

    以上是PHP主|與Swift Mailer一起發送電子郵件的詳細內容。更多資訊請關注PHP中文網其他相關文章!

    陳述
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
    在Laravel中使用Flash會話數據在Laravel中使用Flash會話數據Mar 12, 2025 pm 05:08 PM

    Laravel使用其直觀的閃存方法簡化了處理臨時會話數據。這非常適合在您的應用程序中顯示簡短的消息,警報或通知。 默認情況下,數據僅針對後續請求: $請求 -

    php中的捲曲:如何在REST API中使用PHP捲曲擴展php中的捲曲:如何在REST API中使用PHP捲曲擴展Mar 14, 2025 am 11:42 AM

    PHP客戶端URL(curl)擴展是開發人員的強大工具,可以與遠程服務器和REST API無縫交互。通過利用Libcurl(備受尊敬的多協議文件傳輸庫),PHP curl促進了有效的執行

    簡化的HTTP響應在Laravel測試中模擬了簡化的HTTP響應在Laravel測試中模擬了Mar 12, 2025 pm 05:09 PM

    Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显著减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

    如何註冊和使用Laravel服務提供商如何註冊和使用Laravel服務提供商Mar 07, 2025 am 01:18 AM

    Laravel的服務容器和服務提供商是其架構的基礎。 本文探討了服務容器,詳細信息服務提供商創建,註冊,並通過示例演示了實際用法。 我們將從OVE開始

    在Codecanyon上的12個最佳PHP聊天腳本在Codecanyon上的12個最佳PHP聊天腳本Mar 13, 2025 pm 12:08 PM

    您是否想為客戶最緊迫的問題提供實時的即時解決方案? 實時聊天使您可以與客戶進行實時對話,並立即解決他們的問題。它允許您為您的自定義提供更快的服務

    PHP記錄:PHP日誌分析的最佳實踐PHP記錄:PHP日誌分析的最佳實踐Mar 10, 2025 pm 02:32 PM

    PHP日誌記錄對於監視和調試Web應用程序以及捕獲關鍵事件,錯誤和運行時行為至關重要。它為系統性能提供了寶貴的見解,有助於識別問題並支持更快的故障排除

    解釋PHP中晚期靜態結合的概念。解釋PHP中晚期靜態結合的概念。Mar 21, 2025 pm 01:33 PM

    文章討論了PHP 5.3中介紹的PHP中的晚期靜態結合(LSB),允許靜態方法的運行時間分辨率調用以更靈活的繼承。 LSB的實用應用和潛在的觸摸

    自定義/擴展框架:如何添加自定義功能。自定義/擴展框架:如何添加自定義功能。Mar 28, 2025 pm 05:12 PM

    本文討論了將自定義功能添加到框架上,專注於理解體系結構,識別擴展點以及集成和調試的最佳實踐。

    See all articles

    熱AI工具

    Undresser.AI Undress

    Undresser.AI Undress

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

    AI Clothes Remover

    AI Clothes Remover

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

    Undress AI Tool

    Undress AI Tool

    免費脫衣圖片

    Clothoff.io

    Clothoff.io

    AI脫衣器

    AI Hentai Generator

    AI Hentai Generator

    免費產生 AI 無盡。

    熱門文章

    R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
    2 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳圖形設置
    2 週前By尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您聽不到任何人,如何修復音頻
    3 週前By尊渡假赌尊渡假赌尊渡假赌

    熱工具

    SAP NetWeaver Server Adapter for Eclipse

    SAP NetWeaver Server Adapter for Eclipse

    將Eclipse與SAP NetWeaver應用伺服器整合。

    Dreamweaver Mac版

    Dreamweaver Mac版

    視覺化網頁開發工具

    SecLists

    SecLists

    SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

    SublimeText3 Linux新版

    SublimeText3 Linux新版

    SublimeText3 Linux最新版

    EditPlus 中文破解版

    EditPlus 中文破解版

    體積小,語法高亮,不支援程式碼提示功能