-
Notifications
You must be signed in to change notification settings - Fork 105
/
Copy pathmb-send-mail.xml
179 lines (173 loc) · 6.31 KB
/
mb-send-mail.xml
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
173
174
175
176
177
178
179
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 92f1b8b177eb5730382abf9f27bae868f1bb636f Maintainer: daijie Status: ready -->
<!-- CREDITS: mowangjuanzi -->
<refentry xml:id="function.mb-send-mail" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>mb_send_mail</refname>
<refpurpose>发送编码过的邮件</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>mb_send_mail</methodname>
<methodparam><type>string</type><parameter>to</parameter></methodparam>
<methodparam><type>string</type><parameter>subject</parameter></methodparam>
<methodparam><type>string</type><parameter>message</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>array</type><type>string</type></type><parameter>additional_headers</parameter><initializer>[]</initializer></methodparam>
<methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>additional_params</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
发送邮件。邮件头和内容根据 <function>mb_language</function> 设置来转换编码。
这是 <function>mail</function> 的一个包装器函数,所以详情参见 <function>mail</function>。
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>to</parameter></term>
<listitem>
<para>
被发送到该邮件地址。可通过逗号分隔地址的 <parameter>to</parameter> 来指定多个收件人。
该参数不会被自动编码。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>subject</parameter></term>
<listitem>
<para>
邮件标题。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>
邮件消息。
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>additional_headers</parameter>(可选)</term>
<listitem>
<para>
要插入到电子邮件标头末尾的 <type>string</type> 或 <type>array</type>。
</para>
<para>
这通常用于添加额外的标头(发件人、抄送和密件抄送)。多个额外的标头应该用 CRLF(\r\n)分隔。验证参数不会被攻击者注入不需要的标头。
</para>
<para>
如果传递 <type>array</type>,则其键是标头名称,其值是相应的标头值。
</para>
<note>
<para>
发送邮件时,邮件<emphasis>必须</emphasis>包含 <literal>From</literal> 标头。这可以使用
<parameter>additional_headers</parameter> 参数设置,或者可以在 &php.ini; 中设置默认值。
</para>
<para>
如果不这样做,将导致类似于 <literal>Warning: mail(): "sendmail_from" not
set in php.ini or custom "From:" header missing</literal> 的错误消息。<literal>From</literal> 标头还设置了 Windows 下的 <literal>Return-Path</literal>。
</para>
</note>
<note>
<para>
如果未收到消息,请尝试仅使用 LF(\n)。一些 Unix 邮件传输代理(最著名的是 <link xlink:href="&url.qmail;">qmail</link>)自动将 LF 替换为 CRLF(如果使用
CRLF,这会导致两个 CR)。这应该是最后的手段,因为它不符合 <link xlink:href="&url.rfc;2822">RFC 2822</link>。
</para>
</note>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>additional_params</parameter></term>
<listitem>
<para>
<parameter>additional_params</parameter> 是一个 MTA 命令行参数。在使用
sendmail 时对设置正确的返回路径头很有帮助。
</para>
<para>
该参数由 <function>escapeshellcmd</function> 内部转义以防止命令执行。<function>escapeshellcmd</function> 阻止命令执行,但允许添加额外的参数。出于安全原因,应该验证此参数。
</para>
<para>
Since <function>escapeshellcmd</function> is applied automatically, some characters
that are allowed as email addresses by internet RFCs cannot be used. Programs
that are required to use these characters <function>mail</function> cannot be used.
</para>
<para>
Web 服务器运行的用户应作为受信任的用户添加到 sendmail 配置中,以防止在使用此方法设置信封发件人(-f)时将“X-Warning”标头添加到邮件中。对于
sendmail 用户,此文件为 <filename>/etc/mail/trusted-users</filename>。
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
<parameter>additional_params</parameter> 现在可为 null。
</entry>
</row>
<row>
<entry>7.2.0</entry>
<entry>
<parameter>additional_headers</parameter> 参数现在也接受 <type>array</type>。
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>mail</function></member>
<member><function>mb_encode_mimeheader</function></member>
<member><function>mb_language</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->