最近在做一个项目,需要有邮件发送的功能,服务器邮件发送的话,服务器上必须有能链接邮件服务器,才能实现以下的步骤,现在就给大家分享一下,专门做了一个邮件的发送类
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
<code>/**</code>
<code> </code><code>* 系统邮件发送函数</code>
<code> </code><code>* @param string $to 接收邮件者邮箱</code>
<code> </code><code>* @param string $name 接收邮件者名称</code>
<code> </code><code>* @param string $subject 邮件主题</code>
<code> </code><code>* @param string $body 邮件内容</code>
<code> </code><code>* @param string $attachment 附件列表</code>
<code> </code><code>* @return boolean</code>
<code> </code><code>*/</code>
<code> </code><code>function</code> <code>think_send_mail(</code><code>$to</code><code>, </code><code>$name</code><code>, </code><code>$subject</code> <code>= </code><code>''</code><code>, </code><code>$body</code> <code>= </code><code>''</code><code>, </code><code>$attachment</code> <code>= null){</code>
<code> </code><code>$config</code> <code>= C(</code><code>'THINK_EMAIL'</code><code>);</code>
<code> </code><code>vendor(</code><code>'PHPMailer.class#phpmailer'</code><code>); </code><code>//从PHPMailer目录导class.phpmailer.php类文件</code>
<code> </code><code>$mail</code> <code>= </code><code>new</code> <code>PHPMailer(); </code><code>//PHPMailer对象</code>
<code> </code><code>$mail</code><code>->CharSet = </code><code>'UTF-8'</code><code>; </code><code>//设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码</code>
<code> </code><code>$mail</code><code>->IsSMTP(); </code><code>// 设定使用SMTP服务</code>
<code> </code><code>$mail</code><code>->SMTPDebug = 0; </code><code>// 关闭SMTP调试功能</code>
<code> </code><code>// 1 = errors and messages</code>
<code> </code><code>// 2 = messages only</code>
<code> </code><code>$mail</code><code>->SMTPAuth = true; </code><code>// 启用 SMTP 验证功能</code>
<code> </code><code>$mail</code><code>->SMTPSecure = </code><code>'ssl'</code><code>; </code><code>// 使用安全协议</code>
<code> </code><code>$mail</code><code>->Host = </code><code>$config</code><code>[</code><code>'SMTP_HOST'</code><code>]; </code><code>// SMTP 服务器</code>
<code> </code><code>$mail</code><code>->Port = </code><code>$config</code><code>[</code><code>'SMTP_PORT'</code><code>]; </code><code>// SMTP服务器的端口号</code>
<code> </code><code>$mail</code><code>->Username = </code><code>$config</code><code>[</code><code>'SMTP_USER'</code><code>]; </code><code>// SMTP服务器用户名</code>
<code> </code><code>$mail</code><code>->Password = </code><code>$config</code><code>[</code><code>'SMTP_PASS'</code><code>]; </code><code>// SMTP服务器密码</code>
<code> </code><code>$mail</code><code>->SetFrom(</code><code>$config</code><code>[</code><code>'FROM_EMAIL'</code><code>], </code><code>$config</code><code>[</code><code>'FROM_NAME'</code><code>]);</code>
<code> </code><code>$replyEmail</code> <code>= </code><code>$config</code><code>[</code><code>'REPLY_EMAIL'</code><code>]?</code><code>$config</code><code>[</code><code>'REPLY_EMAIL'</code><code>]:</code><code>$config</code><code>[</code><code>'FROM_EMAIL'</code><code>];</code>
<code> </code><code>$replyName</code> <code>= </code><code>$config</code><code>[</code><code>'REPLY_NAME'</code><code>]?</code><code>$config</code><code>[</code><code>'REPLY_NAME'</code><code>]:</code><code>$config</code><code>[</code><code>'FROM_NAME'</code><code>];</code>
<code> </code><code>$mail</code><code>->AddReplyTo(</code><code>$replyEmail</code><code>, </code><code>$replyName</code><code>);</code>
<code> </code><code>$mail</code><code>->Subject = </code><code>$subject</code><code>;</code>
<code> </code><code>$mail</code><code>->MsgHTML(</code><code>$body</code><code>);</code>
<code> </code><code>$mail</code><code>->AddAddress(</code><code>$to</code><code>, </code><code>$name</code><code>);</code>
<code> </code><code>if</code><code>(</code><code>is_array</code><code>(</code><code>$attachment</code><code>)){ </code><code>// 添加附件</code>
<code> </code><code>foreach</code> <code>(</code><code>$attachment</code> <code>as</code> <code>$file</code><code>){</code>
<code> </code><code>is_file</code><code>(</code><code>$file</code><code>) && </code><code>$mail</code><code>->AddAttachment(</code><code>$file</code><code>);</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>return</code> <code>$mail</code><code>->Send() ? true : </code><code>$mail</code><code>->ErrorInfo;</code>
<code> </code><code>}</code>
此函数只能在ThinkPHP中使用且需要phpmailer扩展的支持;
phpmailer扩展的放置目录为 ThinkPHP/Extend/Vendor/PHPMailer/class.phpmailer.php
phpmail的下载地址:
<a href="https://code.google.com/a/apache-extras.org/p/phpmailer" target="_blank">https://code.google.com/a/apache-extras.org/p/phpmailer</a>
使用此函数 必须在项目中加入以下配置项
<code>//邮件配置</code>
<code> </code><code>'THINK_EMAIL'</code> <code>=> </code><code>array</code><code>(</code>
<code> </code><code>'SMTP_HOST'</code> <code>=> </code><code>'smtp.aaa.com'</code><code>, </code><code>//SMTP服务器</code>
<code> </code><code>'SMTP_PORT'</code> <code>=> </code><code>'465'</code><code>, </code><code>//SMTP服务器端口</code>
<code> </code><code>'SMTP_USER'</code> <code>=> </code><code>'[email protected]'</code><code>, </code><code>//SMTP服务器用户名</code>
<code> </code><code>'SMTP_PASS'</code> <code>=> </code><code>'password'</code><code>, </code><code>//SMTP服务器密码</code>
<code> </code><code>'FROM_EMAIL'</code> <code>=> </code><code>'[email protected]'</code><code>, </code><code>//发件人EMAIL</code>
<code> </code><code>'FROM_NAME'</code> <code>=> </code><code>'ThinkPHP'</code><code>, </code><code>//发件人名称</code>
<code> </code><code>'REPLY_EMAIL'</code> <code>=> </code><code>''</code><code>, </code><code>//回复EMAIL(留空则为发件人EMAIL)</code>
<code> </code><code>'REPLY_NAME'</code> <code>=> </code><code>''</code><code>, </code><code>//回复名称(留空则为发件人名称)</code>
<code> </code><code>),</code>
<code></code>
本文转自 3147972 51CTO博客,原文链接:http://blog.51cto.com/a3147972/1221287,如需转载请自行联系原作者