imap_mail

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_mail发送电子邮件

描述

imap_mail(
    string $to,
    string $subject,
    string $message,
    ?string $additional_headers = null,
    ?string $cc = null,
    ?string $bcc = null,
    ?string $return_path = null
): bool

此函数允许发送电子邮件,并正确处理抄送和密送收件人。

参数 toccbcc 都是字符串,并都被解析为 » RFC822 地址列表。

参数

to

收件人

subject

邮件主题

message

邮件正文,请参见 imap_mail_compose()

additional_headers

作为字符串,包含要设置在邮件上的其他标头

cc

bcc

bcc 中指定的收件人将收到邮件,但会被排除在标头之外。

return_path

使用此参数指定邮件传递失败时的回退路径。当使用 PHP 作为多个用户的邮件客户端时,这很有用。

返回值

成功时返回 true,失败时返回 false

变更日志

版本 描述
8.0.0 additional_headersccbccreturn_path 现在可以为空。

参见

添加注释

用户贡献的注释 4 个注释

Patanjali
6 年前
回复 Mathias Rav 的评论。

虽然 imap_mail 可能存在 $rpath 错误,但它几乎不可与 mail 相比,因为 mail 仅使用默认的邮件服务器帐户,而不是真正的邮箱,而你可以以编程方式对其进行查询和清理。

使用 imap 扩展允许进行适当的邮件管理和操作,例如用户不会收到像 mail 来源的邮件那样,在某些收件人客户端上显示的加密服务器帐户名称,后面跟着“代表”的“发件人”地址。
Mathias Rav
15 年前
根据 http://bugs.php.net/bug.php?id=30688,$rpath 参数被忽略,而且由于(截至目前)这个 4 年前的错误在错误跟踪器中被标记为 WONTFIX,因此该函数实际上已弃用,建议使用 mail() 代替。
bandpay at hotmail dot com
23 年前
扩展上面的注释。
当建立套接字连接时,它的工作原理就像你打开了与新闻服务器的 telnet 连接一样。如果你不知道要发送到新闻服务器的标头类型,那么我建议你最好尝试一下,并使用类似于这样的 telnet 连接进行测试

telenet news.servername.com 119

示例

telnet news.euroconnect.dk 119
尝试 195.184.44.30...
已连接到 news.euroconnect.net (195.184.44.30)。
转义字符为 '^]'。
200 news.euroconnect.net (Typhoon v1.2.1)

然后你会收到来自服务器的确认,表明你已连接。现在输入“help”并回车,你会看到支持哪些命令。

示例

help
100 合法命令
article [<messageid>|number]
authinfo type value
body [<messageid>|number]
date
group newsgroup
head [<messageid>|number]
help
last
list [active wildmat|active.times|counts wildmat]
list [overview.fmt|newsgroups wildmat]
listgroup newsgroup
mode reader
newgroups yyyymmdd hhmmss [GMT]
newnews newsgroups yyyymmdd hhmmss [GMT]
next
post
stat [<messageid>|number]
xhdr field [range]
xover [range]
xpat field range pattern
quit

如果你要发布消息,可以先输入“post”命令。

示例

post
340 发送要发布的文章

从这里开始输入标头信息。
最重要的标头是
From
Subject
Newsgroup

在“:”后面必须跟着一个“空格”。

如果你要发布多部分消息,请记住
MIME-Version: 1.0

当你要发布多部分消息时,这也是最重要的标头之一。边界必须在同一行中紧跟在内容类型之后。

Content-Type: multipart/mixed; boundary="------------4A11A9ABCFCA70DD4E0C3605"

查看下面的文章,了解更多关于标头和消息打包的信息。

http://www.phpbuilder.com/columns/kartic20000807.php3
uphonesimon at gmail dot com
18 年前
确保你已在 php.ini 中正确设置了 SMTP 参数
还要确保 SMTP 服务器接受中继

对于某些邮件服务器,你需要打开一个 imap 流,登录,然后才能通过 imap_mail 发送邮件
To Top