xampp 和thinkphp 建一個本地站並實現郵件發送功能

一.xampp的安裝使用php

1.首先看下什麼是xampp,想要建站的小夥伴確定都知道,XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的建 XAMPP 軟件站集成軟件包html

它能夠在Windows、Linux、Solaris、Mac OS X 等多種操做系統下安裝使用mysql

2.須要什麼版本到官網上下載:xampp下載web

3.安裝很簡單,傻瓜式安裝,感受mysql選項能夠去掉,本身安裝一個,具體安裝看這個:mysql安裝,另外路徑建議只改動盤符,保留後綴路徑sql

4.安裝好的目錄以下thinkphp

5.找到xampp-contorller.exe打開,把apache啓動,輸入:localhost/xampp,有內容出現說明成功,若是不成功,說明apache佔用的默認端口80被其餘程序佔用,apache

能夠到xampp/apache/conf下的httpd.conf下把80端口改爲其餘端口,如81.而後瀏覽器上輸入localhost:81/xampp試一下,還不行再換端口,直到能夠爲止。小程序

6.到此php的運行環境已經完成,下面就能夠下載一個thinkphp框架就能夠建本地站點了。api

二.thinkphp框架的使用瀏覽器

1.thinkphp是一款php的國產框架,很好用,這是官網:thinkphp官網,從這裏面下載最新版本的框架

2.在xampp下的htdocs文件下建立一個文件,命名成你網站想用的名字,而後把下載的thinkphp框架解壓到這個文件下,解壓後效果以下:

3.能夠下載個sublimetext代碼編輯器,打開你建的項目,例如我建的是email:訪問localhost/email,這時候就會自動生成一個mvc的框架。效果圖以下

4.這裏一個可運行的站點已經成型,具體作寫小例子能夠看thinkphp關網的教程,下面介紹下郵件發送小程序寫法

3、寫一個郵件發送的web程序

如圖所示:

其中在IndexController中的代碼是:

public function index(){//顯示發送郵件頁面
$this->name = '郵件發送系統'; // 進行模板變量賦值
$this->display();
}

public function send(){//post請求,發送郵件
$mail=I('post.mail');
$service=D('Index','Service');
$result=$service->sendMail($mail);
if($result == true){
$this->success("成功發送");
}
$this->error($result);
}

這是view下的html代碼:

<html>
<head>
<title>{$name}</title>
</head>
<body>
<h1>郵件發送</h1>
<form method="post" action="{:U('Index/send')}">
<input type="text" name="mail"/>
<input type="submit" value="發送" />
</form>
</body>
</html>

下面是service中的代碼,Indexservice中主要記錄函數具體操做:

class IndexService{
public $ResultData;//沒用到,定義的變量

public function sendMail($mail){//發送郵件
$title = "郵件發送測試";
$path = APP_PATH.'Home/Mailtemp/mail.html';//這裏放的是你要發送的內容
$body = file_get_contents($path);
$body = str_replace("{u}", "<a href='http://hao123.com'>導航網站</a>", $body);
$body = str_replace("{t}",date('Y-m-d H:i:s'),$body);
return send_mail($mail,$mail,$title,$body);//這是放在公共函數裏的也就是function這裏面,能夠直接調用
}

下面是function.php中的代碼:

function send_mail($to, $name, $subject = '', $body = '', $attachment = null, $config = ''){
$config = is_array($config) ? $config : C('SYSTEM_EMAIL');//這個是配置在conmmon下的config裏面的配置
import('phpmailer',THINK_PATH.'Library/Org/Net/mail','.class.php');//在這個路徑下有個php發送郵件的api,若是框架沒有能夠去下載一個
$mail = new PHPMailer(); //PHPMailer對象

$mail->CharSet = 'UTF-8'; //設定郵件編碼,默認ISO-8859-1,若是發中文此項必須設置,不然亂碼
$mail->IsSMTP(); // 設定使用SMTP服務
$mail->IsHTML(true);
$mail->SMTPDebug = 0; // 關閉SMTP調試功能 1 = errors and messages2 = messages only
$mail->SMTPAuth = true; // 啓用 SMTP 驗證功能
if ($config['SMTP_PORT'] == 465)
$mail->SMTPSecure = 'ssl'; // 使用安全協議
$mail->Host = $config['SMTP_HOST']; // SMTP 服務器
$mail->Port = $config['SMTP_PORT']; // SMTP服務器的端口號
$mail->Username = $config['SMTP_USER']; // SMTP服務器用戶名
$mail->Password = $config['SMTP_PASS']; // SMTP服務器密碼
$mail->SetFrom($config['FROM_EMAIL'], $config['FROM_NAME']);
$replyEmail = $config['REPLY_EMAIL'] ? $config['REPLY_EMAIL'] : $config['REPLY_EMAIL'];
$replyName = $config['REPLY_NAME'] ? $config['REPLY_NAME'] : $config['REPLY_NAME'];
$mail->AddReplyTo($replyEmail, $replyName);
$mail->Subject = $subject;
$mail->MsgHTML($body);
$mail->AddAddress($to, $name);
if (is_array($attachment)) { // 添加附件
foreach ($attachment as $file) {;、
if (is_array($file)) {
is_file($file['path']) && $mail->AddAttachment($file['path'], $file['name']);
} else {
is_file($file) && $mail->AddAttachment($file);
}
}
} else {
is_file($attachment) && $mail->AddAttachment($attachment);
}
$result = $mail->Send();
return $result ? true : $mail->ErrorInfo;
}

下面是config下面的代碼:

<?php
return array(
//'配置項'=>'配置值'
//郵件配置
'SYSTEM_EMAIL' => array(
'SMTP_HOST' => 'smtp.163.com', //SMTP服務器
'SMTP_PORT' => '25', //SMTP服務器端口
'SMTP_USER' => 'lemon2543@163.com', //SMTP服務器用戶名//填寫本身的用戶名
'SMTP_PASS' => '', //SMTP服務器密碼//本身郵箱的密碼
'FROM_EMAIL' => 'lemon2543@163.com', //發件人EMAIL
'FROM_NAME' => '馬林', //發件人名稱
'REPLY_EMAIL' => '', //回覆EMAIL(留空則爲發件人EMAIL)
'REPLY_NAME' => '', //回覆名稱(留空則爲發件人名稱)
),
);

下面是效果圖:

下面是我提供的源碼鏈接,直接把文件解壓放到xampp下的htdocs下就能夠了,ps:郵件配置改爲本身的就行

百度雲盤的下載鏈接

 

 

 

相關文章
相關標籤/搜索