網(wǎng)上有很多關(guān)于郵件發(fā)放pos機(jī),php下如何簡單快捷的實(shí)現(xiàn)郵件發(fā)送的知識,也有很多人為大家解答關(guān)于郵件發(fā)放pos機(jī)的問題,今天pos機(jī)之家(m.nxzs9ef.cn)為大家整理了關(guān)于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
郵件發(fā)放pos機(jī)
對于程序員來說,項(xiàng)目中郵件發(fā)送是常用的一個(gè)功能, 我在這不講源碼,只講如何能快速地實(shí)現(xiàn).
phpMailer 是一個(gè)非常強(qiáng)大的 php發(fā)送郵件類,可以設(shè)定發(fā)送郵件地址、回復(fù)地址、郵件主題、html網(wǎng)頁,上傳附件,并且使用起來非常方便。
phpMailer 的特點(diǎn):
1、在郵件中包含多個(gè) TO、CC、BCC 和 REPLY-TO。2、平臺應(yīng)用廣泛,支持的 SMTP 服務(wù)器包括 Sendmail、qmail、Postfix、Gmail、Imail、Exchange 等等。3、支持嵌入圖像,附件,HTML 郵件。4、可靠的強(qiáng)大的調(diào)試功能。5、支持 SMTP 認(rèn)證。6、自定義郵件頭。7、支持 8bit、base64、binary 和 quoted-printable 編碼。phpmailer 安裝或者下載方式:
從 github 上下載: https://github.com/PHPMailer/PHPMailer/
就這三個(gè)文件
大家實(shí)在下載不來的可以直接找我要,沒關(guān)系的
php開啟socket和openssl擴(kuò)展,這種錯(cuò)誤到時(shí)候解決就行
到這一步,我們就可以把這個(gè)壓縮包解壓到我們的項(xiàng)目中了,對于php來講,如果我們用了框架,比如think PHP, 那我們把他放到extend目錄下,如下圖:
think PHP
調(diào)用時(shí)用如下:
如果沒用框架,那就放到公共的三方引用目錄里面或直接就放到你當(dāng)前php文件的同級目錄下,沒什么關(guān)系,引用路徑寫對就行,如下圖:
調(diào)用時(shí)如下:
到這一步相信大家都沒什么問題,下面重點(diǎn)談?wù)劥a層面的問題:
發(fā)送之前需要擁有自己的郵件服務(wù)器,測試的時(shí)候其實(shí)用自己申請的免費(fèi)郵箱最方便了,不需要自己再搭建服務(wù)器了,可能要配置郵箱的SMTP服務(wù),大部分公共郵箱(163、qq等)為了安全默認(rèn)是關(guān)閉的。
網(wǎng)易郵箱配置如下圖:
QQ 郵箱相關(guān)配置如下圖:
我們調(diào)試的時(shí)候一般都是用免費(fèi)的郵件服務(wù)器,QQ或163, 用QQ 郵箱時(shí),大家容易忽略一個(gè)問題,那就是QQ郵箱走465端口,ssl協(xié)議,所以我們?nèi)缦屡渲?
注意一點(diǎn), 密碼為單獨(dú)的授權(quán)碼,不是你的郵箱密碼,有人卡在這了,哈哈
如果用別的郵箱,可以走25端口,但這有一點(diǎn)特別坑,就是阿里云默認(rèn)25端口是關(guān)的,所以沒辦法,要么不用25端口,要么就是向阿里云申請25端口,要么就是換服務(wù)器供應(yīng)商,如IDC等等,
用25端口就不用ssl協(xié)議了,
具體代碼就是這一條寫不寫的區(qū)別.
還有就是同時(shí)發(fā)送多人和多張附件的問題:
發(fā)送多人,處理參數(shù),循環(huán)
發(fā)送附件,處理參數(shù),循環(huán)
實(shí)在是沒什么好說的,就是附件路徑要直接指向你的二進(jìn)制文件,相對路徑和絕對路徑都行,但不是網(wǎng)圖鏈接或三方圖片服務(wù)器鏈接,比如七牛云和阿里云oss,這種只能先下載到本地或服務(wù)器才行,注意個(gè)別下載授權(quán)問題,你懂的
到這一步差不多了,直接放代碼:
/**
* 發(fā)送郵件(重構(gòu)/支持附件)
*/
//參數(shù)有接收郵箱,可單人,可多人, 字符串和數(shù)組都行,看你
//主題,這不用多說
//內(nèi)容, 可html,自動(dòng)識別
//附件,上面已經(jīng)說過注意事項(xiàng)
//三方包里面不用做任何修改
public static function send_email($sendTo, $titleName, $content, $file_list = []) {
$email = array(
\'charset\' => \'UTF-8\', //字符編碼
\'host\' => \'smtp.leju.com\', //企業(yè)郵局域名
\'port\' => 25, //端口
\'username\' => \'\', //郵件發(fā)送人
\'password\' => \'\', //密碼
);
require_once \'Phpmailer/phpmailer.php\';
$mail = new PHPMailer(); //實(shí)例化
//附件
if (!empty($file_list)) {
foreach ($file_list as $key => $value) {
$mail->AddAttachment($value); // 添加附件
}
}
$titleName = $titleName;
// 使用SMTP方式發(fā)送
$mail->IsSMTP();
// 設(shè)置郵件的字符編碼
$mail->CharSet = $email[\'charset\'];
// 企業(yè)郵局域名
$mail->Host = $email[\'host\'];
$mail->Port = $email[\'port\'];
// 啟用SMTP驗(yàn)證功能
$mail->SMTPAuth = true;
//郵件發(fā)送人的用戶名(請?zhí)顚懲暾膃mail地址)
$mail->Username = $email[\'username\'];
// 郵件發(fā)送人的 密碼 (授權(quán)碼)
$mail->Password = $email[\'password\']; //修改為自己的授權(quán)碼
//郵件發(fā)送者email地址
$mail->From = $email[\'username\'];
//發(fā)送郵件人的標(biāo)題
$mail->FromName = \'\';
//做一下處理, 可以多個(gè)收件人,也可以一個(gè)
//收件人地址,可以替換成任何想要接收郵件的email信箱,格式是AddAddress("收件人email","收件人姓名")
if (!empty($sendTo)) {
$sendTo = explode(",", $sendTo);
foreach ($sendTo as $k => $v) {
$mail->AddAddress($v, substr($v, 0, strpos($v, \'@\')));
}
}
//回復(fù)的地址
$mail->AddReplyTo($email[\'username\'], "");
//set email format to HTML //是否使用HTML格式
$mail->IsHTML(true);
//郵件標(biāo)題
$mail->Subject = $titleName;
//郵件內(nèi)容
$mail->Body = $content;
//附加信息,可以省略
$mail->AltBody = \'\';
if (!$mail->Send()) {
$mail_return_arr[\'code\'] = false;
$str = "郵件發(fā)送失敗.
";
$str .= "錯(cuò)誤原因: " . $mail->ErrorInfo;
$mail_return_arr[\'info\'] = $str;
} else {
$mail_return_arr[\'code\'] = true;
$str = "郵件發(fā)送成功";
$mail_return_arr[\'info\'] = $str;
}
return $mail_return_arr;
}
到這一步,大家可以自己進(jìn)行測試了,有問題可以留言,一般常見的問題我都可以為大家解答,或發(fā)我郵箱lnmp171@163.com
以上就是關(guān)于郵件發(fā)放pos機(jī),php下如何簡單快捷的實(shí)現(xiàn)郵件發(fā)送的知識,后面我們會(huì)繼續(xù)為大家整理關(guān)于郵件發(fā)放pos機(jī)的知識,希望能夠幫助到大家!









