on 25/03/02 6:31 PM, anti-blank ([EMAIL PROTECTED]) wrote: > I've got this script here to send out a mail whenever I enter an update to my > site to my mailing list. > The problem is it wants to dump everyone's email into the To field, and since > I don't want to give my > users email addresses away I need to convert this to the bcc field. Below is > the original code and then > the modification that I made (which doesn't seem to work). Also if anyone has > any idea how to include > in this block a line to tell php to send this as HTML email as well that would > be even more helpful.
To answer your question, you'd need to set the $to to a dummy address, or *perhaps* to null, and use headers to add a Bcc line with the address on it. Instead of $from, you should build a $headers var, of which Bcc is one of. UNTESTED: <? $bcc = ""; $query = mysql_query("SELECT * FROM members"); while ($member = mysql_fetch_array($query)) { if ($bcc == "") { $bcc = $member['email']; } else { $bcc .= ", " . $member['email']; } } $from = "From: " . $setting_mail_email . "\r\n"; $to = "[EMAIL PROTECTED]"; $headers = $from.$bcc; mail ($to, $setting_site_name, $mailpost, $headers) or $emailsuccess = "Failure sending email."; ?> HOWEVER, Instead of sending the email in one hit ie: "Bcc: [EMAIL PROTECTED], [EMAIL PROTECTED], etc" Use the while loop of your SQL query to send the mail individualy to each recipient. This has a few benefits: 1. They can see exactly which address they recieved the email through, which is mighty helpfull for people like me with 10+ email address' all hitting my one POP box 2. You can personalise the email with things like: a) Greeting them with their name b) "you are currently subscribed as [EMAIL PROTECTED], to remove your self, or modify your subscription, visit this URL: http://site.com/mail.php?subscriber_id=1&page=edit" 3. You can split the query into smaller chunks, for ISPs with limits on script timeouts etc etc. 4. customise the content of the email to suit thier interests Plus a heap more probably... MY VERSION, UNTESTED: <? $mailpost = $mailpost; $mailpost = str_replace("{setting_site_name}", $setting_site_name, $mailpost); $mailpost = str_replace("{setting_site_url}", $setting_site_url, $mailpost); $mailpost = str_replace("{setting_mail_email}", $setting_mail_email, $mailpost); $mailpost = str_replace("{post_poster}", $cookie_username, $mailpost); $mailpost = str_replace("{post_headline}", $headline, $mailpost); $mailpost = str_replace("{post_date}", date("M d, Y", time()), $mailpost); $mailpost = str_replace("{post_post}", $post, $mailpost); $to = ""; $from = "from: " . $setting_mail_email; $query = mysql_query("SELECT * FROM members"); while ($member = mysql_fetch_array($query)) { if ($to == "") { $to = $member['email']; mail ($to, $setting_site_name, $mailpost, $from) or $emailsuccess = "Failure sending email."; } } ?> > ORIGINAL CODE: > $mailpost = $mailpost; > $mailpost = str_replace("{setting_site_name}", $setting_site_name, $mailpost); > $mailpost = str_replace("{setting_site_url}", $setting_site_url, $mailpost); > $mailpost = str_replace("{setting_mail_email}", $setting_mail_email, > $mailpost); > $mailpost = str_replace("{post_poster}", $cookie_username, $mailpost); > $mailpost = str_replace("{post_headline}", $headline, $mailpost); > $mailpost = str_replace("{post_date}", date("M d, Y", time()), $mailpost); > $mailpost = str_replace("{post_post}", $post, $mailpost); > $to = ""; > $query = mysql_query("SELECT * FROM members"); > while ($member = mysql_fetch_array($query)) { > if ($to == "") {$to = $member['email'];} > else {$to .= ", " . $member['email'];} > } > $from = "from: " . $setting_mail_email; > mail ($to, $setting_site_name, $mailpost, $from) or $emailsuccess = "Failure > sending email."; > if ($emailsuccess == "") {$emailsuccess = "Email Sent Successfully.";} > } > > > > My MODIFIED CODE: > $mailpost = $mailpost; > $mailpost = str_replace("{setting_site_name}", $setting_site_name, $mailpost); > $mailpost = str_replace("{setting_site_url}", $setting_site_url, $mailpost); > $mailpost = str_replace("{setting_mail_email}", $setting_mail_email, > $mailpost); > $mailpost = str_replace("{post_poster}", $cookie_username, $mailpost); > $mailpost = str_replace("{post_headline}", $headline, $mailpost); > $mailpost = str_replace("{post_date}", date("M d, Y", time()), $mailpost); > $mailpost = str_replace("{post_post}", $post, $mailpost); > $bcc = ""; > $query = mysql_query("SELECT * FROM members"); > while ($member = mysql_fetch_array($query)) { > if ($bcc == "") {$bcc = $member['email'];} > else {$bcc .= ", " . $member['email'];} > } > $from = "from: " . $setting_mail_email; > mail ($bcc, $setting_site_name, $mailpost, $from) or $emailsuccess = "Failure > sending email."; > if ($emailsuccess == "") {$emailsuccess = "Email Sent Successfully.";} > } > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php