15

Our web-based PHP software currently sends out a newsletter to anywhere between 1-2000 recipients. Often the newsletter has a PDF attachment (15KB-5MB). The newsletter does not need to be customized to the individual recipients.

Question: Is it better to send one e-mail that has each recipient blind carbon copied (BCC) or to generate a unique e-mail message for each recipient?

Considerations: - Which option puts less stress on the mail transfer agent? - Which option is more efficient programmatically? - Which option is less resource intensive? - Are there any limitations to either option? (e.g. BCC having a maximum number)

I've tried Google and I just can't find anyone that has a definitive opinion based on empirical evidence. It's actually hard to find anyone that has an opinion at all.

THANKS: To everyone who contributed to answering this question. Greatly appreciate the feedback from people to ensure we're doing things properly!

OrangeFrog
  • 285
  • 4
  • 12
  • 1
    Individuals, with bcc, the mail server does the splitting anyway. and if something happens you don't want to expose all those email addresses. and you really should be doing customisation anyway - at least for tracking. If this is outside your core competence, there are some reasonably prices services that will do this. –  Sep 20 '12 at 19:46
  • in addition - don't even think about using [mail()](http://php.net/manual/en/function.mail.php) for this. –  Sep 20 '12 at 20:03
  • Dagon: Why do you suggest not using mail()? Basically what I've done is created a Mail class that handles the formatting of a message but ultimately I still use mail() to do the sending. Is there a more efficient way of pushing mail to the MTA using PHP? – OrangeFrog Sep 21 '12 at 00:03
  • read what he mail page says about using mail() for bulk mail. very inefficient open and closes connection for every mail sent –  Sep 21 '12 at 03:29

3 Answers3

17

Generate a single email per recipient. Use the To field instead of BCC to make it personal.

Advantages

  • The mail queue will accurately reflect what is happening.
  • You can distribute the load to multiple email servers.
  • You can personalize the "To" "Subject" "Body" etc.
  • You can use tracking URL's.
  • Mail servers often have a BCC limit per message. You will not hit a limit if you send a single message at a time.
  • BCC emails typically remain in the queue until all deliveries are complete. It is rare, but we have experienced (with the latest qmail) that sometimes a single recipient will respond with an error that confuses the mail server to send it again, fail, again, fail...until we remove it from the queue. This gets people very upset.

Disadvantages

  • PHP script has to work harder to generate the individual requests.

There are surely other advantages and disadvantages, but that is the list I follow.

UPDATE: Regarding the PDF attachment, I would recommend providing a download link unless it is crucial to include it with the email.

  • PDF attachments make an email look more suspicious to spam/virus scanners, because spam is known to try to exploit vulnerable versions of Acrobat. Those PDF attachments might make your newsletter more likely to end up in the recipient's Spam folder.
  • Large PDF's (1+mb) are not friendly to people checking their email with slow connections or constrained devices such as smartphones.
  • A link is much smaller than the attachment. You will save upwards to 13GB of bandwidth if you leave off that 5MB attachment!
jimp
  • 16,999
  • 3
  • 27
  • 36
  • 3
    that's what i would of wrote if i was not so lazy :-) –  Sep 20 '12 at 20:04
  • @Dagon +1 :) I just added some info about PDF attachments. – jimp Sep 20 '12 at 20:18
  • 1
    Thanks - I hadn't considered spreading the load across multiple MTA's. That's a good idea! Our application is instantiated so upward of 450 sites are all doing the same thing (2000 recipients x 450 sites x 12 newsletters a year... lots of mail). – OrangeFrog Sep 20 '12 at 23:59
1

It depends on MTA infrastructure at your site. If the box that is running your web app is set up to forward all e-mails to some e-mail hub at your ISP then BCC is definitely the advantage. Otherwise, it may save some bandwidth for you but not necessarily (it depends on the actual addresses you send to) Also, I would recommend you not to attach the pdf to the message but place it on the web server and include hyperlink in e-mail. As I got your message is a bulk message. I believe that many people do not read your messages even they opted in to receive.

Serge
  • 6,088
  • 17
  • 27
  • We're using a mail relay server on the same network. I would imagine based on what you suggested BCC is faster (one message from web server to the mail relay server as opposed to 2000 messages from the web server to the mail relay server). – OrangeFrog Sep 21 '12 at 00:10
1

Instead of attaching such a large file (which might also be rejected by some MTAs because of the size) upload it somewhere on a publicly accessible place (i.e. a web server) and send a simple link to all of the email recipients which they can use to view the PDF.

The good thing about this approach is that you save loads of bandwidth and even if you need different PDFs for every recipient you could still use it.