email.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="utf-8" lang="utf-8">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0" />
  6. <title>Email 类 - CodeIgniter 中文手册|用户手册|用户指南|Wiki文档</title>
  7. <link rel="shortcut icon" href="http://codeigniter.org.cn/user_guide/../images/design/favicon.ico" type="image/x-icon" />
  8. <link rel="stylesheet" type="text/css" media="all" href="../userguide.css" />
  9. <link rel="search" href="http://codeigniter.org.cn/user_guide/../CodeIgniterSearch.xml" type="application/opensearchdescription+xml" title="CodeIgniter 搜索"/>
  10. <link rel="canonical" href="http://codeigniter.org.cn/user_guide/libraries/email.html" />
  11. <script type="text/javascript" src="../nav/mootools.js-ver=20130324.js"></script>
  12. <script type="text/javascript" src="../nav/mootools-more.js-ver=20130324.js"></script>
  13. <script type="text/javascript" src="../nav/nav.js-ver=20130324.js"></script>
  14. <script type="text/javascript" src="../nav/user_guide_menu.js-ver=20130324.js"></script>
  15. <meta name="robots" content="all" />
  16. <meta name="author" content="ExpressionEngine Dev Team" />
  17. <meta name="description" content="CodeIgniter 中文手册, CodeIgniter 用户指南, CodeIgniter User Guide, Wiki 文档" />
  18. </head>
  19. <body>
  20. <!-- START NAVIGATION -->
  21. <div id="nav">
  22. <div id="nav_inner">
  23. <script type="text/javascript">create_menu('../');</script>
  24. </div>
  25. </div>
  26. <script type="text/javascript">_setNavigation();</script>
  27. <div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="切换目录" alt="切换目录" /></a></div>
  28. <div id="masthead" class="clearfix">
  29. <div class="topbar-hd"><h1>CodeIgniter 用户指南 版本 2.2.0</h1></div>
  30. <div class="topbar-tip">编辑文档、查看近期更改请 <a href="#">登录</a> 或 <a href="#">注册</a>  <a href="#">找回密码</a></div> <div id="breadcrumb_right"><a href="../toc.html">目录页</a></div>
  31. </div>
  32. <!-- END NAVIGATION -->
  33. <!-- START BREADCRUMB -->
  34. <table cellpadding="0" cellspacing="0" border="0" style="width:100%">
  35. <tr>
  36. <td id="breadcrumb">
  37. <a href="#" target="_blank">CodeIgniter 中国首页</a>&nbsp;&#8250;&nbsp;
  38. <a href="../index.html">用户指南首页</a>&nbsp;&#8250;&nbsp;Email 类 </td>
  39. <td id="searchbox">
  40. <form method="get" action="http://www.google.com.hk/search" target="google_window">
  41. <input type="hidden" name="client" value="pub-0176846097796333"></input>
  42. <input type="hidden" name="forid" value="1"></input>
  43. <input type="hidden" name="ie" value="UTF-8"></input>
  44. <input type="hidden" name="oe" value="UTF-8"></input>
  45. <input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.org.cn/user_guide/" />
  46. 搜索用户指南&nbsp;
  47. <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />
  48. &nbsp;
  49. <input type="submit" class="submit" name="sa" value="Go" />
  50. </form>
  51. </td>
  52. </tr>
  53. </table>
  54. <!-- END BREADCRUMB -->
  55. <div style="clear:both;text-align:right;padding: 6px 40px 0 0;">
  56. <a href="#" target="_blank">查看原文</a>
  57. </div>
  58. <!--<br clear="all" />--><!-- START CONTENT -->
  59. <div id="content">
  60. <h1>Email 类</h1>
  61. <p>CodeIgniter 拥有强大的 Email 类来提供如下的功能:</p>
  62. <ul>
  63. <li>多协议:Mail、Sendmail 和 SMTP</li>
  64. <li>多个收件人</li>
  65. <li>抄送和密送</li>
  66. <li>HTML 或纯文本邮件</li>
  67. <li>附件</li>
  68. <li>自动换行</li>
  69. <li>邮件优先级</li>
  70. <li>密送批处理模式,开启时,大邮件列表将被分成小批次密送。</li>
  71. <li>Email 调试工具</li>
  72. </ul>
  73. <h2>发送邮件</h2>
  74. <p>发送邮件不仅简单,而且可以发送时进行配置或者将参数放到配置文件中。</p>
  75. <p>这里是一个发送邮件的标准示例。注意:该示例是假定使用一个<a href="../general/controllers.html">控制器</a>来发送邮件。</p>
  76. <code>$this-&gt;load-&gt;library('email');<br />
  77. <br />
  78. $this-&gt;email-&gt;from('your@example.com', 'Your Name');<br />
  79. $this-&gt;email-&gt;to('someone@example.com'); <br />
  80. $this-&gt;email-&gt;cc('another@another-example.com'); <br />
  81. $this-&gt;email-&gt;bcc('them@their-example.com'); <br />
  82. <br />
  83. $this-&gt;email-&gt;subject('Email Test');<br />
  84. $this-&gt;email-&gt;message('Testing the email class.'); <br />
  85. <br />
  86. $this-&gt;email-&gt;send();<br />
  87. <br />
  88. echo $this-&gt;email-&gt;print_debugger();</code>
  89. <h2>设置 Email 参数</h2>
  90. <p>有17个不同的有效参数来提供给你如何定制你发送的电子邮件。您可以在此手动设置,或自动通过你储存在配置文件中的键值来设置,描述如下:</p>
  91. <p>参数设定通过一系列的参数值去完成电子邮件的<dfn>initialize</dfn>功能。这里有一个例子,说明怎样设置一些参数设定:</p>
  92. <code>$config['protocol'] = 'sendmail';<br />
  93. $config['mailpath'] = '/usr/sbin/sendmail';<br />
  94. $config['charset'] = 'iso-8859-1';<br />
  95. $config['wordwrap'] = TRUE;<br />
  96. <br />
  97. $this-&gt;email-&gt;initialize($config);</code>
  98. <p><strong>说明:</strong> 大多数参数都有默认值,如果你没有配置这些参数,它们的默认值就会被使用。</p
  99. ><h3>在配置文件中设置 Email 参数</h3>
  100. <p>如果您不想使用上述方法设定参数,您可以把它们放入一个配置文件。创建一个新文件名称为<var>email.php</var> ,添加<var>$config</var>数组在该文件中。然后将该文件保存为<var>config/email.php</var> 它将自动的被使用。如果您保存了一个参数配置文件,就不需要使用<dfn>$this-&gt;email-&gt;initialize()</dfn>函数来初始化参数了</p>
  101. <h2>Email 参数</h2>
  102. <p>下面是发送电子邮件时可以设置的属性的列表。</p>
  103. <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
  104. <tr>
  105. <th>参数</th>
  106. <th>默认值</th>
  107. <th>选项</th>
  108. <th>描述</th>
  109. </tr><tr>
  110. <td class="td"><strong>useragent</strong></td><td class="td">CodeIgniter</td><td class="td">无</td><td class="td">用户代理 "user agent"。</td>
  111. </tr><tr>
  112. <td class="td"><strong>protocol</strong></td><td class="td">mail</td><td class="td">mail, sendmail, or smtp</td><td class="td">邮件发送协议。</td>
  113. </tr><tr>
  114. <td class="td"><strong>mailpath</strong></td><td class="td">/usr/sbin/sendmail</td><td class="td">无</td><td class="td">服务器上 Sendmail 的实际路径。protocol 为 sendmail 时使用。</td>
  115. </tr><tr>
  116. <td class="td"><strong>smtp_host</strong></td><td class="td">无默认值</td><td class="td">无</td><td class="td">SMTP 服务器地址。</td>
  117. </tr><tr>
  118. <td class="td"><strong>smtp_user</strong></td><td class="td">无默认值</td><td class="td">无</td><td class="td">SMTP 用户账号。</td>
  119. </tr><tr>
  120. <td class="td"><strong>smtp_pass</strong></td><td class="td">无默认值</td><td class="td">无</td><td class="td">SMTP 密码。</td>
  121. </tr><tr>
  122. <td class="td"><strong>smtp_port</strong></td><td class="td">25</td><td class="td">无</td><td class="td">SMTP 端口。</td>
  123. </tr><tr>
  124. <td class="td"><strong>smtp_timeout</strong></td><td class="td">5</td><td class="td">无</td><td class="td">SMTP 超时设置(单位:秒)。</td>
  125. </tr><tr>
  126. <td class="td"><strong>wordwrap</strong></td><td class="td">TRUE</td><td class="td">TRUE 或 FALSE (布尔值)</td><td class="td">开启自动换行。</td>
  127. </tr><tr>
  128. <td class="td"><strong>wrapchars</strong></td><td class="td">76</td><td class="td"> </td><td class="td">自动换行时每行的最大字符数。</td>
  129. </tr><tr>
  130. <td class="td"><strong>mailtype</strong></td><td class="td">text</td><td class="td">text 或 html</td><td class="td">邮件类型。发送 HTML 邮件比如是完整的网页。请确认网页中是否有相对路径的链接和图片地址,它们在邮件中不能正确显示。</td>
  131. </tr><tr>
  132. <td class="td"><strong>charset</strong></td><td class="td">utf-8</td><td class="td"></td><td class="td">字符集(utf-8, iso-8859-1 等)。</td>
  133. </tr><tr>
  134. <td class="td"><strong>validate</strong></td><td class="td">FALSE</td><td class="td">TRUE 或 FALSE (布尔值)</td><td class="td">是否验证邮件地址。</td>
  135. </tr><tr>
  136. <td class="td"><strong>priority</strong></td><td class="td">3</td><td class="td">1, 2, 3, 4, 5</td><td class="td">Email 优先级. 1 = 最高. 5 = 最低. 3 = 正常.</td>
  137. </tr>
  138. <tr>
  139. <td class="td"><strong>crlf</strong></td>
  140. <td class="td">\n</td>
  141. <td class="td">&quot;\r\n&quot; or &quot;\n&quot; or &quot;\r&quot;</td>
  142. <td class="td">换行符. (使用 &quot;\r\n&quot; to 以遵守RFC 822).</td>
  143. </tr>
  144. <tr>
  145. <td class="td"><strong>newline</strong></td><td class="td">\n</td>
  146. <td class="td">"\r\n" or "\n" or &quot;\r&quot;</td><td class="td">换行符. (使用 &quot;\r\n&quot; to 以遵守RFC 822).</td>
  147. </tr><tr>
  148. <td class="td"><strong>bcc_batch_mode</strong></td><td class="td">FALSE</td><td class="td">TRUE or FALSE (boolean)</td><td class="td">启用批量暗送模式.</td>
  149. </tr><tr>
  150. <td class="td"><strong>bcc_batch_size</strong></td><td class="td">200</td><td class="td">None</td><td class="td">批量暗送的邮件数.</td>
  151. </tr>
  152. </table>
  153. <h2>Email 函数参考</h2>
  154. <h3>$this-&gt;email-&gt;from()</h3>
  155. <p>设置发件人email地址和名称:</p>
  156. <code>$this-&gt;email-&gt;from('<var>you@example.com</var>', '<var>Your Name</var>');</code>
  157. <h3>$this-&gt;email-&gt;reply_to()</h3>
  158. <p>设置邮件回复地址. 如果没有提供这个信息,将会使用"from()"函数中的值. 例如:</p>
  159. <code>$this-&gt;email-&gt;reply_to('<var>you@example.com</var>', '<var>Your Name</var>');</code>
  160. <h3>$this-&gt;email-&gt;to()</h3>
  161. <p>设置收件人email地址(多个). 地址可以是单个、一个以逗号分隔的列表或是一个数组:</p>
  162. <code>$this-&gt;email-&gt;to('<var>someone@example.com</var>');</code>
  163. <code>$this-&gt;email-&gt;to('<var>one@example.com</var>, <var>two@example.com</var>, <var>three@example.com</var>');</code>
  164. <code>$list = array('<var>one@example.com</var>', '<var>two@example.com</var>', '<var>three@example.com</var>');<br />
  165. <br />
  166. $this-&gt;email-&gt;to(<var>$list</var>);</code>
  167. <h3>$this-&gt;email-&gt;cc()</h3>
  168. <p>设置抄送(Carbon Copy / CC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.</p>
  169. <h3>$this-&gt;email-&gt;bcc()</h3>
  170. <p>设置暗送(Blind Carbon Copy / BCC) email地址(多个). 类似to()函数, 地址可以是单个、一个以逗号分隔的列表或是一个数组.</p>
  171. <h3>$this-&gt;email-&gt;subject()</h3>
  172. <p>设置email主题:</p>
  173. <code>$this-&gt;email-&gt;subject('<var>This is my subject</var>');</code>
  174. <h3>$this-&gt;email-&gt;message()</h3>
  175. <p>设置email正文部分:</p>
  176. <code>$this-&gt;email-&gt;message('<var>This is my message</var>');</code>
  177. <h3>$this-&gt;email-&gt;set_alt_message()</h3>
  178. <p>设置可选的邮件EMAIL正文部分:</p>
  179. <code>$this-&gt;email-&gt;set_alt_message('<var>This is the alternative message</var>');</code>
  180. <p>这是EMAIL可选的一部分,如果你发送带HTML的邮件,这可以用到。它用于当接收邮件都不支持HTML格式时显示给用户的内容。如果你没有设置这部分,CodeIginiter会自动从邮件正文中提取去掉TAGS的部分。</p>
  181. <h3>$this-&gt;email-&gt;clear()</h3>
  182. <p>将所有EMAIL的变量清空. 这个方法用于当你在循环中发送邮件时,可以在两次循环中重新设置邮件内容。</p>
  183. <code>foreach ($list as $name => $address)<br />
  184. &#123;<br />
  185. &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;clear();<br /><br />
  186. &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;to($address);<br />
  187. &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;from('your@example.com');<br />
  188. &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;subject('Here is your info '.$name);<br />
  189. &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;message('Hi '.$name.' Here is the info you requested.');<br />
  190. &nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;email-&gt;send();<br />
  191. &#125;</code>
  192. <p>如果将参数设为TRUE,附件也会被清空:</p>
  193. <code>$this-&gt;email-&gt;clear(TRUE);</code>
  194. <h3>$this-&gt;email-&gt;send()</h3>
  195. <p>发送EMAIL. 根据发送结果,成功返回TRUE,失败返回FALSE。就可以将它用于判断语句:</p>
  196. <code>if ( ! $this-&gt;email-&gt;send())<br />
  197. &#123;<br />
  198. &nbsp;&nbsp;&nbsp;&nbsp;// Generate error<br />
  199. &#125;</code>
  200. <h3>$this-&gt;email-&gt;attach()</h3>
  201. <p>添加附件。第一个参数是相对于入口文件的文件路径/文件名(不能写成'/path/photo1.jpg'). 注意: 是路径而不是URL。多次使用该函数可以添加多个附件:</p>
  202. <code>$this-&gt;email-&gt;attach('path/photo1.jpg');<br />
  203. $this-&gt;email-&gt;attach('path/photo2.jpg');<br />
  204. $this-&gt;email-&gt;attach('path/photo3.jpg');<br />
  205. <br />
  206. $this-&gt;email-&gt;send();</code>
  207. <h3>$this-&gt;email-&gt;print_debugger()</h3>
  208. <p>返回包含邮件内容的字符串,包括EMAIL头和EMAIL正文。用于调试。</p>
  209. <h2>取消自动换行</h2>
  210. <p>如果你启用自动换行(建议遵循 RFC 822),EMAIL中有一个非常长的链接它将会换行,导致链接不能被收信人直接点击打开。CodeIgniter可以对正文的部分片段避免这种自动换行,比如:</p>
  211. <code>The text of your email that<br />
  212. gets wrapped normally.<br />
  213. <br />
  214. <var>&#123;unwrap&#125;</var>http://example.com/a_long_link_that_should_not_be_wrapped.html<var>&#123;/unwrap&#125;</var><br />
  215. <br />
  216. More text that will be<br />
  217. wrapped normally.</code>
  218. <p>将你不想自动换行的部分放入: <var>&#123;unwrap&#125;</var> <var>&#123;/unwrap&#125;</var>中间</p><p>&nbsp;</p>
  219. <div id="Contributors">
  220. 翻译贡献者:
  221. 498621, csfhc, ekawayi, Hex, ianyang, imjie, kele_87, larryli, roln, sygb, xjflyttp, xluohome, yinzhili, yygcom</div>
  222. <div id="DocDate">
  223. 最后修改: 2014-02-26 22:19:14</div>
  224. </div>
  225. <!-- END CONTENT -->
  226. <div id="footer">
  227. <p>
  228. 上一个主题:&nbsp;&nbsp;<a href="../database/index.html">数据库类</a>&nbsp;&nbsp;&middot;&nbsp;&nbsp;<a href="#top">页首</a>
  229. &nbsp;&middot;&nbsp;&nbsp;<a href="../index.html">用户指南首页</a>&nbsp;&nbsp;&middot;&nbsp;&nbsp;下一个主题:&nbsp;&nbsp;<a href="encryption.html">加密类</a> </p>
  230. <p><a href="#">CodeIgniter</a> &nbsp;&middot;&nbsp; 版权所有 &#169; 2006-2013 &nbsp;&middot;&nbsp; <a href="#">Ellislab, Inc.</a></p>
  231. <p>中文化: <a href="#">CodeIgniter 中国</a> &nbsp;&middot;&nbsp; 制作: Hex &nbsp;&middot;&nbsp; 版本: 1.30 &nbsp;&middot;&nbsp; 鸣谢: 子非鱼</p>
  232. </div>
  233. </body>
  234. </html>