搜尋
首頁後端開發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
    如何防止會話固定攻擊?如何防止會話固定攻擊?Apr 28, 2025 am 12:25 AM

    防止會話固定攻擊的有效方法包括:1.在用戶登錄後重新生成會話ID;2.使用安全的會話ID生成算法;3.實施會話超時機制;4.使用HTTPS加密會話數據,這些措施能確保應用在面對會話固定攻擊時堅不可摧。

    您如何實施無會話身份驗證?您如何實施無會話身份驗證?Apr 28, 2025 am 12:24 AM

    實現無會話身份驗證可以通過使用JSONWebTokens(JWT)來實現,這是一種基於令牌的認證系統,所有的必要信息都存儲在令牌中,無需服務器端會話存儲。 1)使用JWT生成和驗證令牌,2)確保使用HTTPS防止令牌被截獲,3)在客戶端安全存儲令牌,4)在服務器端驗證令牌以防篡改,5)實現令牌撤銷機制,如使用短期訪問令牌和長期刷新令牌。

    PHP會議有哪些常見的安全風險?PHP會議有哪些常見的安全風險?Apr 28, 2025 am 12:24 AM

    PHP會話的安全風險主要包括會話劫持、會話固定、會話預測和會話中毒。 1.會話劫持可以通過使用HTTPS和保護cookie來防範。 2.會話固定可以通過在用戶登錄前重新生成會話ID來避免。 3.會話預測需要確保會話ID的隨機性和不可預測性。 4.會話中毒可以通過對會話數據進行驗證和過濾來預防。

    您如何銷毀PHP會議?您如何銷毀PHP會議?Apr 28, 2025 am 12:16 AM

    銷毀PHP會話需要先啟動會話,然後清除數據並銷毀會話文件。 1.使用session_start()啟動會話。 2.用session_unset()清除會話數據。 3.最後用session_destroy()銷毀會話文件,確保數據安全和資源釋放。

    如何更改PHP中的默認會話保存路徑?如何更改PHP中的默認會話保存路徑?Apr 28, 2025 am 12:12 AM

    如何改變PHP的默認會話保存路徑?可以通過以下步驟實現:在PHP腳本中使用session_save_path('/var/www/sessions');session_start();設置會話保存路徑。在php.ini文件中設置session.save_path="/var/www/sessions"來全局改變會話保存路徑。使用Memcached或Redis存儲會話數據,如ini_set('session.save_handler','memcached');ini_set(

    您如何修改PHP會話中存儲的數據?您如何修改PHP會話中存儲的數據?Apr 27, 2025 am 12:23 AM

    tomodifyDataNaphPsession,startTheSessionWithSession_start(),然後使用$ _sessionToset,修改,orremovevariables.1)startThesession.2)setthesession.2)使用$ _session.3)setormodifysessessvariables.3)emovervariableswithunset()

    舉一個在PHP會話中存儲數組的示例。舉一個在PHP會話中存儲數組的示例。Apr 27, 2025 am 12:20 AM

    在PHP會話中可以存儲數組。 1.啟動會話,使用session_start()。 2.創建數組並存儲在$_SESSION中。 3.通過$_SESSION檢索數組。 4.優化會話數據以提升性能。

    垃圾收集如何用於PHP會議?垃圾收集如何用於PHP會議?Apr 27, 2025 am 12:19 AM

    PHP會話垃圾回收通過概率機制觸發,清理過期會話數據。 1)配置文件中設置觸發概率和會話生命週期;2)可使用cron任務優化高負載應用;3)需平衡垃圾回收頻率與性能,避免數據丟失。

    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脫衣器

    Video Face Swap

    Video Face Swap

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

    熱工具

    WebStorm Mac版

    WebStorm Mac版

    好用的JavaScript開發工具

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強大的PHP整合開發環境

    Atom編輯器mac版下載

    Atom編輯器mac版下載

    最受歡迎的的開源編輯器

    Dreamweaver CS6

    Dreamweaver CS6

    視覺化網頁開發工具