1. 程式人生 > >phpmailer實現簡單的郵件傳送(以網易郵箱smtp伺服器為例)

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的不錯選擇。這裡