IMAP 函数
在线手册:中文 英文
PHP手册

imap_mail

(PHP 4, PHP 5)

imap_mailSend an email message

说明

bool imap_mail ( string $to , string $subject , string $message [, string $additional_headers = NULL [, string $cc = NULL [, string $bcc = NULL [, string $rpath = NULL ]]]] )

This function allows sending of emails with correct handling of Cc and Bcc receivers.

The parameters to, cc and bcc are all strings and are all parsed as » RFC822 address lists.

参数

to

The receiver

subject

The mail subject

message

The mail body

additional_headers

As string with additional headers to be set on the mail

cc

bcc

The receivers specified in bcc will get the mail, but are excluded from the headers.

rpath

Use this parameter to specify return path upon mail delivery failure. This is useful when using PHP as a mail client for multiple users.

返回值

成功时返回 TRUE, 或者在失败时返回 FALSE.

参见


IMAP 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Send an email message

用户评论:

ava3ar at gmail dot com (04-Aug-2011 09:50)

a patch has been submitted to fix this in 5.4

chris dot weatherby at microstravel dot com (29-Apr-2010 01:19)

Note: this function is a local wrapper round sendmail (or the php win32 mail functions), rather than using the imap c-client smtp functionality to sendmail. Do not expect error handling by the c-client library to be returned by this as I did.

Mathias Rav (23-Jun-2009 05:07)

As per http://bugs.php.net/bug.php?id=30688 the $rpath argument is ignored, and since the (as of now) 4 year old bug is tagged WONTFIX in the bug tracker, this function is effectively deprecated in favour of mail().

uphonesimon at gmail dot com (23-Dec-2005 07:45)

make sure you've correctly setup the SMTP parameters in php.ini
and aslo make sure that the SMTP server accepts relay

for some mail servers, you have to open up an imap stream, log in, and then you can send mail through imap_mail

nick at divbyzero dot com (13-Jul-2005 04:24)

FYI, to finish your message post over telnet, enter a period (".") by itself as the last line of the post. Took me a while to google this so I thought I'd share. Then you can disconnect with 'quit'.

bandpay at hotmail dot com (05-Jan-2001 02:01)

Extending the above note.
When the socket connection is stablished, it works exactly as if you had openned a telnet connection to the news server. If you don't know what kind of headers you have to send to the news server, then I'll suggest that you better give it a try and play with a telnet connection like this:

telenet news.servername.com 119

eaxmple:

telnet news.euroconnect.dk 119
Trying 195.184.44.30...
Connected to news.euroconnect.net (195.184.44.30).
Escape character is '^]'.
200 news.euroconnect.net (Typhoon v1.2.1)

then you'll receive confirmation from the server that you are connected. Now type "help" and enter, and you'll see what commands are supported.

eaxmle:

help
100 Legal Commands
  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

If you want to post a message, you can start by entring the "post" command.

example:

post
340 Send Article to be Posted

From here you can start to enter the header information.
The most important headers are:
From:
Subject:
Newsgroup:

after the ":" a "white space" must follow.

If you are posting the multipart message then remember
MIME-Version: 1.0

This one is also one of the important headers when you are posting a multipart message. The boundary must follow the content type in the same line.

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

Take a look at the article below to find out more about headers and packing of the message.

http://www.phpbuilder.com/columns/kartic20000807.php3

bandpay at hotmail dot com (28-Dec-2000 02:01)

If you need to send messages to a NNTP server, and you don't find the function, which is sufficient for this job, then use this.

$stream = fsockopen($server,$port, &$errno, &$errstr);
fwrite($stream, "POST\r\n");
fwrite($stream, "Newsgoups "$newsgroup."\n");
$fwrite ($stream, " What ever you need to write\n");
.........
fwrite($stream, "The rest of what you like to write\n");
fclose($stream);

There are ofcourse not so straight, but if you know which parameters your message needs, you can do it like this.

You can build up a message with imap_mail_compose ();

When you a complete message then U can write it to the server, and the server will take care of the time,  date, Massage-ID and so on, but you have to know the sturcture of the header which you make, and if you like to write a multipart message, then you better get to know it in details.

In case that you know a better way, please inform me.
Good luck.

mgsander at schaap dot dhs dot org (03-Dec-2000 06:09)

You can change the From field in your message by specifying "From: blabla@yadayada.net" in the additional_headers field.