行使邮件处事商的IMAP/SMTP 处事,这里我们用163邮箱在分析一下,完成发送邮件效果的流程
1.登入163邮箱在设置里开启IMAP/SMTP 处事
2.在客户端受权暗码设置受权暗码(需要手机考证), POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV处事。
3. 确认php.ini中;extension=php_openssl.dll是否是开启, 没有则增加extension=php_openssl.dll。
4.遴选php自带函数mail() 大概PHPMaile第三方的类住手发送邮件,下面先容第一种自带mail()
一:
/*需要增加一个发送邮件的代庖署理在config设置文件中*/
'MAIL_ADDRESS' => '****@163.com', // 初始化邮箱地点
'MAIL_SMTP' => 'smtp.163.com', // 初始化邮箱SMTP处事器
'MAIL_LOGINNAME' => '****@163.com', // 初始化邮箱登录帐号
'MAIL_PASSWORD' => '****', // 初始化邮箱暗码
'MAIL_CHARSET' => 'UTF-8', //编码
'MAIL_AUTH' => true, //邮箱认证
'MAIL_HTML' => true, //true HTML格局 false TXT格局
/*以下是节制器中的行使*/
import('Org.Util.Mail');//导入邮件类
$sendTitle="邮件标题";//邮件标题
$sendData="邮件内容,能够行使html代码";//发送内容
$toMail="***xx@163.com";//收件人
$theme="留言回声邮件";//邮件主题
SendMail($toMail,$sendTitle,$sendData,$theme);
二、
* phpemail邮件发送处事类,下载的phpmail把src时的文件放入指定文件夹,同时点窜去除PHPMailer.php和SMTP.php时的定名空间便可
* 库下载地点:https://github.com/PHPMailer/PHPMailer
这是封装的一个类
class SendemailService {
function __construct() {
$config = array(
'MAIL_CHARSET' => 'UTF-8',
'MAIL_SMTPAUTH' => true, //是否是行使身份考证
'MAIL_ISHTML' => true, //是否是行使html
'MAIL_USERNAME' => '', //发件地点
'MAIL_SMTPHOST' => '', //smtp地点
'MAIL_PASSWORD' => '', //发件地点暗码
'MAIL_SMTPSECURE' => '', //行使ssl和谈办法,ssl和谈办法端标语是465/994
'MAIL_PORT' => '25', //端口
'MAIL_GET_ADDRESS' => '', //默许单一收件箱
);
$this->mailconfig = $config;
}
/**
* 发送邮件
* @param $get_email
* @param $data array('title'=>'','detail'=>'')
* @return bool
*/
public function sendEmail($data, $get_email = '') {
vendor('PHPMailer.PHPMailer');
vendor('PHPMailer.SMTP');
$mail = new \PHPMailer();
$mail = $this->setBaseConfig($mail, $data, $get_email);
if (!$mail->send()) {
return "Mailer Error: " . $mail->ErrorInfo; //前去弊端信息
} else {
return 0; //为0默示发送成功
}
}
/**
* 邮件根基设置
* @param $mail
* @param $data
* @param string $get_email
* @return mixed
*/
public function setBaseConfig($mail, $data, $get_email = '') {
$config = $this->mailconfig;
$get_email = $get_email ? $get_email : $config['MAIL_GET_ADDRESS'];
$mail->isSMTP(); // 行使SMTP处事
$mail->CharSet = "utf8"; // 编码格局为utf8,不设置编码的话,中文会泛起乱码
$mail->Host = $config['MAIL_SMTPHOST']; // 发送方的SMTP处事器地点
$mail->SMTPAuth = $config['MAIL_SMTPAUTH']; // 是否是行使身份考证
$mail->Username = $config['MAIL_USERNAME']; // 发送方的163邮箱用户名
$mail->Password = $config['MAIL_PASSWORD']; // 发送方的邮箱暗码,注重用163邮箱这里填写的是“客户端受权暗码”而不是邮箱的登录暗码!
$mail->SMTPSecure = $config['MAIL_SMTPSECURE']; // 行使ssl和谈办法
$mail->Port = $config['MAIL_PORT']; // 163邮箱的ssl和谈办法端标语是465/994
$mail->IsHTML($config['MAIL_ISHTML']); //撑持html格局内容
$mail->setFrom($config['MAIL_USERNAME'], ''); // 设置发件人信息,如邮件格局分析中的发件人,这里会显示为Mailer(***x@163.com),Mailer是看成名字显示
$mail->addAddress($get_email, ''); // 设置收件人信息,如邮件格局分析中的收件人,这里会显示为Liang(yyyy@163.com)
//$mail->addReplyTo("","王");// 设置答复人信息,指的是收件人收到邮件后,如果要答复,答复邮件将发送到的邮箱地点
//$mail->addCC("1132083961@qq.com"); // 设置邮件抄送人,