使用php mail函式通過465埠傳送郵件

2021-10-09 18:14:10 字數 1279 閱讀 1181

由於專案需要,必須支援php使用原生mail函式實現郵件傳送;

所以暫時拋棄使用郵件類,linuxmail等解決方案

在網上搗鼓半天sendmail,網上的資料翻了遍,都沒找到很好的解決方法

由於伺服器封禁了25埠,必須要通過465傳送郵件

最後終於找到了使用postfix的可行方法,這裡記錄一下問題,方便以後備查,也方便遇到同樣問題的小夥伴查閱

1. 找到裡面的smtp服務,將埠改為465

vi /etc/services

smtp 465/tcp mail

smtp 465/udp mail

2.解決network is unreachable問題

執行 dhclient

3.新增發郵件用的伺服器位址以及發郵件的賬戶密碼

vi /etc/postfix/sasl_passwd

[smtp.exmail.qq.com] [email protected]:密碼 //這裡使用的是qq的郵箱伺服器,需要開啟qq郵箱的smtp服務,並獲取驗證碼

4.儲存檔案後執行

postmap /etc/postfix/sasl_passwd

postfix reload

5.編輯main.cf檔案

vi /etc/postfix/main.cf

relayhost = [smtp.exmail.qq.com] //這個地方要和前面一樣

#新增以下項,先搜尋項名稱,如果存在則修改後面的值即可

smtpd_sasl_auth_enable = yes

smtp_sasl_auth_enable = yes

smtp_sasl_security_options = noanonymous

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_tls_security_level = encrypt

6.修改php.ini

sendmail_path = /usr/sbin/sendmail.postfix -f [email protected] -t -i

重點是-f 郵箱名,否則會報501,**必須和作者一致

7.重啟fpm,postfix服務

service php-fpm restart

service postfix restart

8.新建php檔案進行測試

mail("[email protected]", "subject for php", "test!!!!"); //mail命令

參考:

使用PHPMail傳送郵箱(163郵箱為例)

2 建立index.html檔案。並寫入 標 題 內 容 3 建立index.php檔案並寫入 首先引入class.phpmailer.php和class.smtp.php這兩個類檔案 include class.phpmailer.php include class.smtp.php mail n...

46 函式與巨集分析

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 函式與巨集 巨集or函式?define reset p,len while len 0 char p len 0 void reset void p,int len 二 函...

4 6 使用資料型別

目錄 4.1 int型別介紹 4.2 char型別介紹 4.3 float double型別介紹 4.4 小結及其他資料型別簡單介紹 4.5 型別大小 編寫程式時,應注意合理選擇所需的變數及其型別。通常,用int或float型別表示數字,char型別表示字元。在使用變數之前必須先宣告,並選擇有意義的...