phpmailer實現簡單的郵件傳送(以網易郵箱smtp伺服器為例)
1、描述
第一次做到用php做到傳送郵件的功能。
Google了一下,php內建函式裡面有一個mail()函式。但是使用mail的話,會涉及到很多問題,我也沒有仔細研究過,反正都是和smtp協議息息相關。
於是,就去GitHub上開源的檔案傳送封裝好的專案。後來就搜尋到PHPMailer這個東西了。傳送門:https://github.com/PHPMailer/PHPMailer (自行翻牆) 不多說,下載下來。
2、使用
當讀完phpmailer的文件之後,你會找個一個最簡單的demo。但是這個demo會載入一些‘不單純’的郵件傳送函式,比如附件傳送,圖片傳送之類。我們這邊只考慮最簡單的。所以我們把class.phpmailer.php。class.smtp.php兩個檔案拿出來,他們是實現郵件傳送和SMTP服務的關鍵。然後我們自己建立一個檔案send.php 程式碼如下:
<?php
/**
* Created by PhpStorm.
* User: tao
* Date: 2017/3/14
* Time: 下午5:41
* Description:
*/
echo postmail('目標郵箱','My subject','hello world');
function postmail($to,$subject = '',$body = ''){
//Author:Jiucool WebSite: http://www.jiucool.com
//$to 表示收件人地址 $subject 表示郵件標題 $body表示郵件正文
//error_reporting(E_ALL);
error_reporting(E_STRICT);
date_default_timezone_set('Asia/Shanghai');//設定時區東八區
require_once('class.phpmailer.php');
include('class.smtp.php');
$mail = new PHPMailer(); //new一個PHPMailer物件出來
$body = eregi_replace("[\]",'',$body); //對郵件內容進行必要的過濾
$mail->CharSet = "GBK";//設定郵件編碼,預設ISO-8859-1,如果發中文此項必須設定,否則亂碼
$mail->IsSMTP(); // 設定使用SMTP服務
$mail->SMTPDebug = 1; // 啟用SMTP除錯功能
// 1 = errors and messages
// 2 = messages only
$mail->SMTPAuth = true; // 啟用 SMTP 驗證功能
$mail->SMTPSecure = "ssl"; // 安全協議,可以註釋掉
$mail->Host = 'smtp.163.com'; // SMTP 伺服器
// $mail->Port = 25; // SMTP伺服器的埠號
$mail->Port = 465; // SMTP伺服器的埠號
$mail->Username = '****網易郵箱的賬號'; // SMTP伺服器使用者名稱,PS:我亂打的
$mail->Password = '****網易郵箱的密碼'; // SMTP伺服器密碼
$mail->SetFrom('網易郵箱的賬號@163.com', 'blue');
// $mail->AddReplyTo('[email protected]','who');
$mail->Subject = $subject;
$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional, comment out and test
$mail->MsgHTML($body);
$address = $to;
$mail->AddAddress($address, '');
//$mail->AddAttachment("images/phpmailer.gif"); // attachment
//$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
return 'Mailer Error: ' . $mail->ErrorInfo;
} else {
return "Message sent!恭喜,郵件傳送成功!";
}
}
參照demo,正確填寫你的郵箱賬號和你要的內容就可以正常傳送了,但是我測試的時候會發送到垃圾郵件中,記得做好友好提示。
3、 備註
類似的smtp.qq.com 也能提供smtp服務,但是具體的話,要上網瞭解,最好登入自己的郵箱進行檢視,支援的安全協議是什麼。埠是什麼,都要一一對應的。不然會報錯,還有就是我是在線上測試的,本地測試的時候會報connect錯誤,自行解決了。更多的傳送內容的話,參照demo和官方給的demo就能解決了。
相關推薦
phpmailer實現簡單的郵件傳送(以網易郵箱smtp伺服器為例)
1、描述 第一次做到用php做到傳送郵件的功能。 Google了一下,php內建函式裡面有一個mail()函式。但是使用mail的話,會涉及到很多問題,我也沒有仔細研究過,反正都是和smtp協議息息相關。 於是,就去GitHub上開源的檔案傳送封裝好的專案
名人問題 演算法解析與Python 實現 O(n) 複雜度 (以Leetcode 277. Find the Celebrity為例)
1. 題目描述 Problem Description Leetcode 277. Find the Celebrity Suppose you are at a party with n people (labeled from 0 to n -
Linux(Centos)下調整分區大小(以home和根分區為例)
vertical speech col 信息 卸載 記錄 jsb 大小 control 在安裝新系統的時候,有時候沒法預估或者說錯誤的劃分了分區大小,常常會導致我們後面的操作出現極大地不方便,比如某個分區分的太小了,導致 軟件安裝的時候會報安裝空間不夠,這就很麻煩。在
u-boot原始碼目錄分析(以jz2440 u-boot1.1.6為例)
一、檔案的分析 arm_config.mk。字尾是.mk,是一個Makefile檔案,將來在某個Makefile中會去呼叫它。 Changelog檔案,修改記錄檔案,該檔案記錄了這個uboot專案的版本變遷以及每個版本較上個版本修改的記錄。 config.mk。和arm_
基於GDAL庫,讀取.nc文件(以海洋表溫數據為例)
調試 cfi 主函數 != mes stdstring 微軟 detail back 對於做海洋數據處理的同學,會經常遇到nc格式的文件,nc文件的格式全稱是NetCDF,具體的詳細解釋請查詢官網【https://www.unidata.ucar.edu/softwar
【資料庫】關於日期的處理(以greenplum和postgresql和hive為例)
那個啥,本人菜鳥一隻,如果有什麼說錯的地方還請大家批評指出!! 好,開始說正事,日期處理和判斷是十分常見的,本文就自己使用的資料庫,和hive資料倉庫來說說,我使用到的一些日期的處理和判斷,當然技術能力有限,我也很菜,所以如果有說錯或者遺漏的還請大家多多包涵,望能批評指出,也讓我的水平提高提高!
json 資料持久化(以賬號和使用者名稱的儲存為例)
以賬號和使用者名稱的儲存為例 一、建立公共類使用者,定義使用者類的欄位:如賬號、密碼等 二、建立公共類列表,在列表類內定義一個使用者類型別的列表,定義列表需要匯入名稱空間System.Collections.Generic 三、儲存使用者 1.建立一個註冊方法 2. 判斷輸入框是否為
使用jdbc向資料庫中注入大量資料(以10W條資料批量插入為例)
例項:10w條資料的插入(批量插入) import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class HomeWork02 { //預
矩陣快速冪(以斐波那契數列為例)
小 M 玩數列 【問題描述】 小 W 發現了一個神奇的數列: () = ( − 1) + ( − 2) { ≥ 3, (1) = 1, (2) = 1} ,這就是著名的 Fibonacci Se
Matlab繪製三維曲面(以二維高斯函式為例)
寒假學習了一下Python下的NumPy和pymatlab,感覺不是很容易上手。來學校之後,決定繼續看完數字影象處理一書。還是想按照上學期的模式,邊看邊實現書中的演算法。上學期看的時候,是用C語言實現的,發現寫程式太耗時間了,所以決定還是學習下Matlab吧(寒假莫有學會Python中的那些庫應用。。。)
DDR3詳解(以Micron MT41J128M8 1Gb DDR3 SDRAM為例)
首先,我們先了解一下記憶體的大體結構工作流程,這樣會比較容量理解這些引數在其中所起到的作用。這部分的講述運用DDR3的簡化時序圖。 DDR3的內部是一個儲存陣列,將資料“填”進去,你可以它想象成一張表格。和表格的檢索原理一樣,先指定一個行(Row),再指定一個列(Co
spark最新原始碼下載並匯入到開發環境下助推高質量程式碼(Scala IDEA for Eclipse和IntelliJ IDEA皆適用)(以spark2.2.0原始碼包為例)(圖文詳解)
不多說,直接上乾貨! 前言 其實啊,無論你是初學者還是具備了有一定spark程式設計經驗,都需要對spark原始碼足夠重視起來。 本人,肺腑之己見,想要成為大資料的大牛和頂尖專家,多結合原始碼和操練程式設計。 好一段時間之前,寫過這篇部落格
Servlet容器啟動過程(以Tomcat中啟動Servlet容器為例)
一、Tomcat的總體結構中的Service模組及Container容器(引入) tomcat啟動server伺服器(包含多個服務模組)對外提供Service服務,Service模組由Container元件連線多個Connector構成。 Service
python 其他.py 與tkinter介面傳值的方法(以遍歷資料夾進度為例)
本小白沒深入瞭解過python的原理,多個檔案只知道在一個.py檔案裡import另一個.py檔案但是問題來了 ,帶著介面的被import後會又多出來一個視窗! 就算是呼叫一下函式都會再彈出一個介面!於是,經過不斷嘗試我分享一下我的方法……(本小白還沒用到類)本人做了一個小工
YOLOv3 實練(以VOC2007、2012資料集為例)
訓練裝置:Lenovo 拯救者; GPU:1070ti; 視訊記憶體:8GB; 第一次訓練:採用預設引數,以預訓練好的darknet53.conv.74.1為預載入權重開始訓練;視訊記憶體,卒;報錯:out of memory; 第二次訓練:更改引數
FCN語義分割訓練資料(以siftflow和voc2012資料集為例)
截至目前,現已經跑通了siftflow-fcn32s,voc-fcn32s,並製作好了自己的資料集,現在就等大批資料的到來,進而針對資料進行引數fine-tuning,現對我訓練的訓練流程和訓練過程中遇到的問題,做出總結和記錄,從而對以後的學習作鋪墊。 通過這篇分析語義分割
VS 2013 統一修改所有工程的目錄配置(以 boost、opencv3 的安裝為例)
在 vs2013安裝配置C++boost庫 一文中我們介紹了,如何在vs2013環境裡配置安裝boost庫。在配置vs2013時,我們只是介紹瞭如何對當前專案或者某一專案進行boost相關庫等檔案目錄的設定,也即如果再新建一個工程,我們需重新配置工程中的bo
PHPMailer實現PHP郵件傳送
1.首先是下載PHPMailer http://code.google.com/a/apache-extras.org/p/phpmailer/ 2.解壓 從中取出class.phpmailer.php 和 class.smtp.php 放到你的專案的資料夾,因為我
keras實現多個模型融合(非keras自帶模型,這裡以3個自己的模型為例)
該程式碼可以實現類似圖片的效果,多個模型採用第一個輸入。 圖片來源:https://github.com/keras-team/keras/issues/4205 step 1:重新定義模型(這是我自己的模型,你們可以用你們自己的),與預訓練不一樣,這裡定義模型inp
windows下安裝使用docker(以網易蜂巢為倉庫)
傳統軟體,全棧開發是很有挑戰性的。docker等虛擬化技術讓運維變得更加的簡單。開發、測試等工程師都可以直接參與運維的工作。由於現在工作日常開發環境是在windows環境下,直接在windows環境下安裝並使用docker也是學習使用docker的不錯選擇。這裡