RE: [PHP] mail() with mailing lists problem
| From: | Rudolf Visagie | Date: | Tue, 13 Nov 2001 08:40:32 +0000 |
| Subject: | RE: [PHP] mail() with mailing lists problem | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-74388@lists.php.net to get a copy of this message | ||
True. I had the attachment outside of the function (encoding once) but this
is a leftover of debugging and trying to get it to work. I hadn't thought of
Bcc-ing everybody. I'll try that, thanks. Still doesn't solve the problem,
though. Maybe a socket is the answer.
-----Original Message-----
From: TD - Sales International Holland B.V. [mailto:td@salesint.com]
Sent: 12 November 2001 04:15
To: Rudolf Visagie
Subject: Re: [PHP] mail() with mailing lists problem
If you send the same message over and over wouldn't it be a LOT wiser to BCC
the rest of the people? This way you are MIME-encoding the attachment over
and over which consumes a lot of resources. MIME-encoding a 10MB file will
suck up a P-III 600 for 20 to 30 secs or so depending on other background
processes and diskspeed. MIME encoding the same attachment a 1000 times
doesn't appear really fast to me. Also, with all the headers you use, you
could just as well open a socket to the SMTP service, then you could have
additional error checking I guess.......
Just some thoughts..
regards
On Monday 12 November 2001 13:47, you wrote:
> Hi All,
>
> While everybody is on this topic, here's a problem I have been having. I
> use mail() in a function in a loop to send e-mail with an attachment. The
> e-mails get sent out to the different recipients but only the last one
gets
> sent correctly. The rest loses the 'From:' somewhere so that the message
> ends up with the server name as from who and with the encoded attachment
> inside of the message body. Here's the function:
>
> function mail_attachment ($to, $subject, $message, $addr_from,
$attachment,
> $filename) {
>
> /*
> This function sends an e-mail with a file attachment using the
> standard
> PHP mail function with parameters $to, $subject and $message.
> The $attachment parameter is a string with the attachment file
> content with
> filename $filename.
> */
>
> $boundary = "b".md5(uniqid(time()));
> $mime = "From: $addr_from\n";
> $mime .= "Reply-To: $addr_from\n";
> $mime .= "X-Mailer: Digital Healthcare Solutions\n";
> $mime .= "X-Sender: $addr_from\n";
> $mime .= "Content-type: multipart/mixed; ";
> $mime .= "boundary = $boundary\n\n";
> $mime .= "This is a MIME encoded message.\n\n";
> // First the regular message
> $mime .= "--$boundary\n";
> $mime .= "Content-type: text/plain\n";
> $mime .= "Content-Transfer-Encoding: base64";
> $mime .= "\n\n".chunk_split(base64_encode($message))."\n";
> // Now the attachment
> $mime .= "--$boundary\n";
> $mime .= "Content-type: text/plain\n";
> $mime .= "Content-Transfer-Encoding: base64\n";
> $mime .= "Content-Disposition: attachment; ";
> $mime .= "filename = ".chr(34).$filename.chr(34);
> $mime .= "\n\n".chunk_split(base64_encode($attachment))."\n";
> $mime .= "--$boundary--";
>
> mail ($to, $subject, "", $mime);
> }
>
> and here's the loop in which it gets called:
>
> $i = 0;
> while (isset($EmailAddress[$i])) {
> mail_attachment ($EmailAddress[$i], "URGENT Communication",
> $message, $addr_from, $attachment, $filename);
> $i++;
> }
>
> Does anybody have any ideas?
>
> Rudolf Visagie
> Principal Software Developer
> Digital Healthcare Solutions
> Tel. +27(0)11 266 6946
> Fax. +27(0)11 266 5080
> Cell: +27(0)82 895 1598
> E-mail: rudolf@dhsolutions.co.za