Send.class.php
4.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
<?php
class Lib_Mail_Send
{
/**
* Send对象
*
* @var Util_Mail_Phpmailer
*/
private $_mailer = null ;
/**
* 模板目录(默认为当前目录下的templates目录)
*
* @var unknown_type
*/
public $template_dir = '' ;
/**
* 模板文件后缀
*
* @var unknown_type
*/
public $template_suffix = '.phtml' ;
/**
* 邮件配置
*
* @var unknown_type
*/
public $mail_config = array(
'Username' => 'no-reply', // 邮局用户名(请填写完整的email地址)
'Password' => 'yoho!@#smail@cn', //邮局密码
'From' => 'no-reply@yoho.cn',//邮件发送者email地址
'Host' => 'smail.yoho.cn',//企业邮局域名
'SMTPAuth' => true,// 启用SMTP验证功能
'CharSet' => 'utf-8',//设置邮件编码
);
/**
* 构造函数-初始化配置
*
* @param string $template_dir 模板所有的目录(可省略,默认为当前的templates目录)
*/
public function __construct($template_dir = '')
{
$this->_mailer = new Util_Mail_Phpmailer();
$this->setConfig($this->mail_config);
$this->_mailer->IsHTML(true);
if ($template_dir == '')
{
$template_dir = dirname(__FILE__).DS.'templates';
}
$this->template_dir = $template_dir ;
}
/**
* 设置邮件配置
*
* @param array $config 配置 ,详细参数见成员变量
* @return void
*/
public function setConfig ($config)
{
if (is_array($config))
{
$this->mail_config = array_merge($this->mail_config,$config);
}
$this->_init();
}
/**
* 初始化邮件配置
*
* @return void
*/
private function _init ()
{
foreach ($this->mail_config as $name => $value)
{
if ($value !== '')
{
$this->_mailer->$name = $value ;
}
}
}
/**
* 是否使用SMTP方式发送
*
* @param unknown_type $boolean
* @return void
*/
public function isSmtp()
{
$this->_mailer->IsSMTP();
}
/**
* 指定是否使用HTML格式 (默认使用HTML发送)
*
* @param boolean $boolean
* @return void
*/
public function isHtml($boolean = true)
{
//是否使用HTML格式
$this->_mailer->IsHTML($boolean);
}
/**
* 发送邮件
*
* @param string $subject 标题
* @param string $tpl 模板
* @param string $tomail 要发送的邮箱地址
* @param string $params 模板所对应的参数
* @param string $fromAlias 别名
* @return boolean
*/
public function send($subject, $tpl, $tomail, $params,$fromAlias = 'YOHO')
{
$emailMatch = "/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i";
//正确的邮箱
$rightEmail = '';
if(preg_match($emailMatch,$tomail) && strlen($subject))
{
$rightEmail = $tomail;
}
else
{
return false;
}
//收件人地址,格式是AddAddress("收件人email","收件人姓名")
$this->_mailer->AddAddress($rightEmail,'');
//发送者别名
$this->_mailer->FromName = $fromAlias;
//邮件标题,设置标题编码
$this->_mailer->Subject = "=?UTF-8?B?".base64_encode($subject) ."?=";
//邮件内容
$content = $this->getContent($tpl,$params) ;
//设置内容
$this->_mailer->Body = $content;
$this->isSmtp();
//$this->_mailer->SMTPDebug = true ;
//邮件发送成功
$send = $this->_mailer->Send() ;
if($send === true)
{
//清除发送人
$this->_mailer->ClearAddresses();
return true;
}
else
{
return false;
}
}
/**
* 获取模板
*
* @param unknown_type $tpl
* @param unknown_type $parames
* @return unknown
*/
public function getContent($tpl,$parames)
{
ob_start();
extract($parames);
include $this->template_dir . DS .$tpl.$this->template_suffix ;
$content = ob_get_clean();
return $content ;
}
}