回复 Mathias Rav 的评论。
虽然 imap_mail 可能存在 $rpath 错误,但它几乎不可与 mail 相比,因为 mail 仅使用默认的邮件服务器帐户,而不是真正的邮箱,而你可以以编程方式对其进行查询和清理。
使用 imap 扩展允许进行适当的邮件管理和操作,例如用户不会收到像 mail 来源的邮件那样,在某些收件人客户端上显示的加密服务器帐户名称,后面跟着“代表”的“发件人”地址。
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_mail — 发送电子邮件
$to
,$subject
,$message
,$additional_headers
= null
,$cc
= null
,$bcc
= null
,$return_path
= null
此函数允许发送电子邮件,并正确处理抄送和密送收件人。
参数 to
、cc
和 bcc
都是字符串,并都被解析为 » RFC822 地址列表。
to
收件人
subject
邮件主题
message
邮件正文,请参见 imap_mail_compose()
additional_headers
作为字符串,包含要设置在邮件上的其他标头
cc
bcc
在 bcc
中指定的收件人将收到邮件,但会被排除在标头之外。
return_path
使用此参数指定邮件传递失败时的回退路径。当使用 PHP 作为多个用户的邮件客户端时,这很有用。
版本 | 描述 |
---|---|
8.0.0 |
additional_headers 、cc 、bcc 和 return_path 现在可以为空。 |
回复 Mathias Rav 的评论。
虽然 imap_mail 可能存在 $rpath 错误,但它几乎不可与 mail 相比,因为 mail 仅使用默认的邮件服务器帐户,而不是真正的邮箱,而你可以以编程方式对其进行查询和清理。
使用 imap 扩展允许进行适当的邮件管理和操作,例如用户不会收到像 mail 来源的邮件那样,在某些收件人客户端上显示的加密服务器帐户名称,后面跟着“代表”的“发件人”地址。
根据 http://bugs.php.net/bug.php?id=30688,$rpath 参数被忽略,而且由于(截至目前)这个 4 年前的错误在错误跟踪器中被标记为 WONTFIX,因此该函数实际上已弃用,建议使用 mail() 代替。
扩展上面的注释。
当建立套接字连接时,它的工作原理就像你打开了与新闻服务器的 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
确保你已在 php.ini 中正确设置了 SMTP 参数
还要确保 SMTP 服务器接受中继
对于某些邮件服务器,你需要打开一个 imap 流,登录,然后才能通过 imap_mail 发送邮件