欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 詳解PHP發送郵件知識點

詳解PHP發送郵件知識點

熱門標簽:長沙做地圖標注公司 福建銀行智能外呼系統價格 房產中介用的是什么外呼系統 地圖標注專員怎么樣 上海做外呼線路的通信公司 遼寧ai電銷機器人價格 四川保險智能外呼系統供應商 電話機器人銷售主要負責什么 寧波外呼營銷系統

發送郵件是網站的常用功能,用戶激活、找回密碼等場景常需要發送郵件到用戶郵箱。本文先回顧發送郵件的相關概念,再給出使用PHP發送郵件的示例代碼。

發送短信

從功能上看,短信和郵件類似,用途常是通知和安全校驗。發送短信(基本上)需要向供應商付費,所以短信供應商有動力提供清晰的文檔,易用的接口方便用戶接入。一般而言,發送短信的是:

尋找供應商,例如阿里大魚、聚合數據等;

注冊賬戶,獲取appid和appkey;

申請模板;

查看接口文檔,集成到應用中;

調用API發送短信。

流程簡單易懂,接入和使用也十分便捷,基本上一兩小時內就能對接和測試好。用戶無需考慮訊息在通訊過程中的編碼、尋址下發等細節,缺點是要付費。

郵件一般是免費服務,相關支持沒那么到位,這也要理解。各種編程語言發送郵件的類庫不少,從信源角度看基本可以分成兩類:從本機發送和從第三方郵件服務商發送。為了理解郵件發送的流程,先介紹一些相關概念。

相關概念

大部分接觸到互聯網的人都有使用郵件的經驗,但基本上限于郵件客戶端、網頁端和提供商這幾個概念。作為一個開發,理解本節中的以下概念能更好的幫你掌握郵件通訊中的細節。

MUA : Mail User Agent,郵件用戶代理。用戶代理是開發中經常接觸到的詞,主要指 理解人的意圖并代表用戶向資源方請求的工具。例如瀏覽器是最常用的用戶代理,以HTTP/HTTPS協議格式向web服務器發送請求,并解析響應,渲染后呈現給用戶。郵件用戶代理,常見的是Foxmail、Outlook這類工具,人們寫好郵件后,按格式封裝郵件內容與郵件服務器通訊。

MTA : Mail Transfer Agent,郵件傳輸代理,幫用戶收發郵件的程序。常說的郵件服務器指的就是MTA,開源的程序有sendmail,postfix,QMail等。

MRA : Mail Retrieval Agent,郵件收取代理,將用戶的郵件從郵件服務器取回本地。郵件客戶端是常見的MRA。

SMTP : Simple Mail Transfer Protocol,簡單郵件傳輸協議。用戶與郵件服務器、郵件服務器互相傳遞郵件均使用該協議(默認明文,可使用SSL\TLS加密)。

POP3/IMAP : Post Office Protocol version 3/Internet Message Access Protocol,郵局協議版本3或網絡信息獲取協議,客戶端從服務端獲取郵件時使用的協議。

用戶A(163郵箱)向用戶B(Gmail郵箱)發信,用戶B獲取信件的過程涉及到上述的概念。流程和概念關系可用如下簡圖表示:

用戶A --發送郵件--> 用戶B
 M|S         M|I
 U|M         R|M
 A|T         A|A
 |P         |P
 v          v
MTA(163)--轉發(SMTP)->MTA(gmail)

注:上圖給出的是郵件發送的大體流程,其他MSA、MDA、ESMTP、SMTPS等可能會出現在整個流程中,但不影響郵件收發的理解。下文中會提到的縮寫和概念會注明,其他請自行查詢。

postfix

Linux下發送郵件的軟件主要是sendmail和postfix,它們在系統中充當上文概念中的MTA/MDA(Mail Delivery Agent,郵件投遞代理)角色。它幫助用戶向外發送郵件,接收郵件投遞到用戶信箱(默認位置/var/spool/mail/用戶名)。

sendmail是老牌的郵件軟件,知名度非常高。但是Wietse(Wietse Zweitze Venema)用的不爽,于是有了postfix。postfix命令(幾乎)兼容于sendmail,但更高效和安全(后綴fix的由來),是目前大部分Linux發行版的默認郵件收發軟件,推薦使用postfix而非sendmail(本博客多年前有篇文章寫如何配置sendmail,那時年少無知見識少,打算抽空把那篇文章改一下)。

postfix的主要配置文件是/etc/postfix/main.cf,配置文件的注釋非常全,選項基本是自解釋的。最重要的幾個配置是:myhostname、myorigin、inet_interfaces、inet_protocols以及mydestination(如果你打算收外網來信的話)。需要注意inet_interfaces配置為localhost時,inet_protocols的值應為ipv4,否則可能會出現類似postfix: fatal: parameter inet_interfaces: no local interface found for ::1的錯誤提示。

與郵件相關的幾個常用postfix命令是:

mail或mailx,發送郵件。tlanyan用戶向root發送郵件:mail -s "Greetings" root@localhost -r tlanyan@localhost,接著終端中輸入A nice day!,然后回車,按ctrl+D結束正文編輯,郵件就已經發送出去。登錄到root賬號,會提示在/var/spool/mail/root中有新郵件。用tail或者其他命令可查看郵件的詳細信息。

postquque,查看郵件發送隊列。postqueue -p可取代sendmail中的mailq命令,postqueue -f刷新隊列(強制嘗試發送隊列中的郵件)。

postcat,查看未發送郵件的信息。例如postcat -q xxxx(xxxx是postqueue或者mailq顯示的未發送隊列ID)可查看郵件的詳細信息,postcat -b -q xxxxx只查看郵件正文。

postsuper,超級用戶才可使用的郵件管理程序。postsuper -d xxxx,刪除隊列ID為xxxxx的郵件;postsuper -h xxxxx,暫停隊列ID為xxxx的郵件發送,等。

以上介紹對于發送郵件基本已足夠。注意,mail命令發送的郵件能投遞的前提是postfix正在運行(ps aux | grep postfix | grep -v grep輸出不為空)。

有了postfix,配置好后可以對外發送郵件,也能收取外網發送過來的郵件,但限于命令行操作。想用foxmail等客戶端收發郵件,需要讓服務器支持POP3/IMAP協議。開源的dovecot可以實現這個功能。dovecot服務于收郵件而非發送,了解其對開發中的幫助不大。如果想搭建一套完整的郵件系統(包括網頁端支持、垃圾郵件過濾、病毒查殺、傳輸加密等),建議參考或使用國產開源的 EwoMail。

了解postfix對開發中發送郵件幫助有多大?說實話,幾乎沒有幫助。原因是為了防止垃圾郵件泛濫,各大云服務器廠商屏蔽了25端口(Google Cloud連465都干掉了)。亞馬遜云通過申請還有放行的可能(但有速率和每日額度限制),其他廠商幾乎不會讓你使用自己的域名從本機直接發送郵件。封禁25端口,必須使用第三方的郵件服務,幾乎是業界的標準做法。

聰明的人可能想到,使用465加密端口(基于SMTPS,SMTP over SSL協議)或587端口(SMTP over STARTTLS協議)發送郵件,是不是就能繞開限制了?阿里云/騰訊云等廠商并不封禁465端口,發送郵件可以使用該端口而無需申請。但注意465和587端口是客戶端和郵件服務器通訊使用的端口,郵件服務器之間通訊使用25端口。你可以通過465端口連接到Gmail郵箱對外發送郵件,但無法讓postfix使用465端口投遞郵件到hotmail郵件服務器。

總結來說,sendmail/postfix作為垃圾和欺詐郵件泛濫前的郵件服務器軟件,對業界貢獻很大。隨著云服務器的盛行,幾乎無法以指向本機的域名向外發送郵件,sendmail/postfix除了在本機內發送提醒郵件,用處已然不大。要對外發送郵件,要么自建機房,要么使用第三方郵件系統。

PHP的mail函數

作為PHP開發中,了解sendmail/postfix還是有點用處。mail函數默認使用sendmail/postfix發送郵件,了解相關配置,就能知道為啥能工作/為啥不能工作。

簡單來說,要讓PHP自帶的mail函數正常工作,需要做以下事情:

申請域名,在DNS解析中設置MX記錄,指向本機(非合法主機(FQDN, Fully Qualified Domain Name)發送的郵件都會被當做垃圾郵件直接丟棄);

安裝sendmail/postfix,配置軟件并運行;

配置防火墻、安全組,放行端口。

發送效率低、非面向對象的調用方式,配置麻煩以及云服務器廠商的封鎖,是使用mail函數的最大阻礙。所以做PHP以來,本人并未直接用過mail函數。

PHP發送郵件

發個郵件要了解這么多,會讓人覺得很心累。說好的PHP是最好的語言呢?

PHP發送郵件也可以很簡單,推薦方式就是使用Swift Mailer或PHPMailer等類庫。引入這些類庫后,注冊第三方郵箱(比如Gmail、QQ等),填好用戶名密碼,配置好STMP地址和端口,就能像發送短信一樣輕松發送郵件。當然這些類庫也支持使用sendmail/postfix發送郵件,但我想你不會再這樣做了。

以Swift Mailer為例,直接上代碼說明使用PHP發送郵件也是一個非常簡單的事情!

首先,在項目中引入Swift Mailer:

composer require "swiftmailer/swiftmailer:^6.0"

然后準備好郵件內容(以文本文件為例,不帶附件):

$message = (new Swift_Message('Test Message'))
  ->setFrom(['tlanyan@tlanyan.me' => 'tlanyan'])
  ->setTo(['tlanyan1@tlanyan.me'])
  ->setBody('Hello, this is a test mail from Swift Mailer!');

接著,設置好郵件傳輸方式(使用Gmail郵箱):

$transport = (new Swift_SmtpTransport('smtp.gmail.com', 465, 'ssl'))
  ->setUsername('username')
  ->setPassword('password');

或者使用sendmail/postfix的方式(不推薦):

$transport = (new Swift_SendmailTransport());

最后,使用transport構造mailer實例,發送郵件:

$mailer = new Swift_Mailer($transport);
$result = $mailer->send($message);

老板再也不用擔心發送郵件收不到了,So easy!

總結

本文先回顧了發送郵件的相關概念,說明不推薦使用內置的mail函數原因,最后給出了使用第三方類庫發送郵件的代碼示例。

您可能感興趣的文章:
  • ThinkPHP3.2利用QQ郵箱/163郵箱通過PHPMailer發送郵件的方法
  • phpmailer發送郵件功能
  • PHP實現自動發送郵件功能代碼(qq 郵箱)
  • php smtp實現發送郵件功能
  • PHP實現在windows下配置sendmail并通過mail()函數發送郵件的方法
  • PHP調用Mailgun發送郵件的方法
  • Linux服務器下PHPMailer發送郵件失敗的問題解決
  • PHP插件PHPMailer發送郵件功能
  • PHPMailer發送郵件

標簽:澳門 延安 深圳 佛山 常德 工商登記 宜春 宿遷

巨人網絡通訊聲明:本文標題《詳解PHP發送郵件知識點》,本文關鍵詞  詳解,PHP,發送,郵件,知識點,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《詳解PHP發送郵件知識點》相關的同類信息!
  • 本頁收集關于詳解PHP發送郵件知識點的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    天天插天天射天天干| 在线不卡中文字幕播放| 久久影院视频免费| 麻豆精品在线观看| 白丝女仆被免费网站| 91精品福利在线一区二区三区| 国产一区二区三区四区在线| 欧美一区二区在线视频| 日韩精品久久理论片| 在线精品视频播放| 欧美丰满少妇xxxxx高潮对白| 91精品国产高清一区二区三区蜜臀| 精品国产乱码久久久久久图片| 136国产福利精品导航| 成人中文字幕合集| 久久久久久久久久97| 中文字幕+乱码+中文字幕一区| 亚洲国产另类av| 激情综合激情五月| 日韩一区二区三区免费看| 婷婷综合久久一区二区三区| 久久人人爽人人人人片| 337p亚洲精品色噜噜| 精品熟妇无码av免费久久| 26uuu另类欧美| 韩国理伦片一区二区三区在线播放| 成人免费毛片高清视频| 国产十六处破外女视频| www.欧美日韩| www青青草原| 制服丝袜中文字幕一区| 中文字幕不卡在线观看| 中文字幕av一区二区三区免费看| 久久久.com| 日本一区二区视频在线观看| 麻豆传媒一区二区三区| 欧美丰满熟妇bbb久久久| 老司机成人免费视频| 91精品国产色综合久久不卡电影| 日韩一级片大全| 在线观看日韩av先锋影音电影院| 欧美伦理视频网站| 欧美videos中文字幕| 麻豆免费在线观看视频| 精品一区二区在线免费观看| 人妻熟女aⅴ一区二区三区汇编| 国模无码国产精品视频| 精品国产一区二区三区av性色| 亚洲六月丁香色婷婷综合久久| 美腿丝袜在线亚洲一区| 91在线播放网址| 色综合久久精品| 日韩—二三区免费观看av| 色天天综合久久久久综合片| 亚洲精品一区二区三区精华液 | 人人妻人人藻人人爽欧美一区| 欧美成人精品3d动漫h| 久久av老司机精品网站导航| 国产黄a三级三级| 亚洲人成网站影音先锋播放| 日韩av在线发布| 影音先锋男人看片资源| 欧美va亚洲va国产综合| 久久97超碰色| 日韩网站在线播放| 欧美激情一二三区| 极品美女销魂一区二区三区| 一道本在线观看| 国产蜜臀97一区二区三区| 国产一区欧美一区| 国产3级在线观看| 久久一二三国产| 国模套图日韩精品一区二区| 久久精品一区二区三区四区五区| 精品伦理精品一区| 首页国产欧美久久| 国产精品无码在线| 精品日产卡一卡二卡麻豆| 久久99精品国产麻豆不卡| 欧美一区二区三区系列电影| 女人扒开腿免费视频app| 日韩亚洲欧美中文三级| 激情图片小说一区| 亚洲精品自拍视频在线观看| 国产精品全国免费观看高清| 国内成人免费视频| 曰本女人与公拘交酡| 蜜桃av一区二区| 精品国产91乱码一区二区三区| 深爱五月激情网| 欧美电影免费提供在线观看| www.欧美日韩国产在线| 久久精品人人做| 喷水视频在线观看| 最新中文字幕一区二区三区| 伊人影院综合网| 日韩不卡手机在线v区| 欧洲一区在线电影| 国产91精品精华液一区二区三区| 69久久夜色精品国产69蝌蚪网| 成人av动漫在线| 国产欧美日本一区视频| 少妇户外露出[11p]| 亚洲综合一区二区三区| 欧洲第一无人区观看| 国产麻豆精品95视频| 欧美va亚洲va国产综合| 屁屁影院国产第一页| 亚洲一二三区在线观看| 色欧美88888久久久久久影院| 国产一区在线精品| 26uuu精品一区二区| 日本一级片在线播放| 亚洲国产美女搞黄色| 欧美专区亚洲专区| 9久草视频在线视频精品| 国产精品丝袜91| 青青操在线播放| 国产伦精品一区二区三区视频青涩 | 91视频com| 亚洲日本成人在线观看| 国产盗摄x88av| 成人国产视频在线观看| 国产精品久久久久久久久免费丝袜| 成人片黄网站色大片免费毛片| 日韩精品一区第一页| 69堂国产成人免费视频| 水蜜桃av无码| 蜜臀av一区二区三区| 日韩欧美成人激情| a级大片在线观看| 久久99最新地址| 国产日韩精品久久久| 色www亚洲国产阿娇yao| 国产激情91久久精品导航| 亚洲国产成人在线| 日韩在线中文字幕视频| 成人av在线影院| 亚洲精品国产无天堂网2021| 欧美自拍偷拍午夜视频| 免费看毛片的网站| 日韩精品免费专区| 精品国产第一区二区三区观看体验| 人人人妻人人澡人人爽欧美一区| 激情文学综合网| 国产精品视频线看| 日本精品视频一区二区| 日本中文字幕有码| 日韩电影网1区2区| 精品sm在线观看| 麻豆网址在线观看| 91免费看视频| 丝袜诱惑制服诱惑色一区在线观看 | 免费成人深夜小野草| 久久综合九色欧美综合狠狠| 黄色国产在线播放| 99热这里都是精品| 一片黄亚洲嫩模| 日韩一级大片在线| 永久免费观看片现看| 成人av免费在线观看| 最新久久zyz资源站| 欧美精选午夜久久久乱码6080| 人妻丰满熟妇aⅴ无码| 国产在线一区二区综合免费视频| 国产精品久久午夜夜伦鲁鲁| 欧美无人高清视频在线观看| 黄色a一级视频| 国产91色综合久久免费分享| 一区二区三区电影在线播| 欧美精品第一页| 首页国产欧美日韩丝袜| 精品国精品国产| 国产精品久久久精品四季影院| 日本泡妞xxxx免费视频软件| 蜜臀久久99精品久久久画质超高清| 久久精品亚洲精品国产欧美 | 在线观看精品一区| 中文字幕乱码在线| 国产黄色91视频| 精品久久久久久久久久久久久久久久久| 亚洲av无一区二区三区| 日本黄色录像片| 91在线小视频| 成人动漫一区二区| 国产九九视频一区二区三区| 国产一区二区三区综合| 亚洲国产欧美日韩另类综合| 一色屋精品亚洲香蕉网站| 久久久久久免费网| 日韩一级精品视频在线观看| 欧美三级电影精品| 欧洲色大大久久| 唐朝av高清盛宴| 色狠狠综合天天综合综合| 你懂得视频在线观看| 日本成人免费视频| 人妻一区二区视频| 538精品视频| av资源在线免费观看|