473,289 Members | 2,108 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,289 software developers and data experts.

How to best send email to a low volume list?

I need to maintain a list of subscribers to an email list for a
"newsletter" that will be sent via a web form probably once a month.
I anticipate low numbers--tens to maybe one hundred subscribers at the
most. Just curious what the best way to code this is. Should I just
loop through the addresses and send one-off emails to each, or is it
better to somehow send to every recipient in one shot? One thing I
would like to avoid in the latter scenario is each recipient being
able to see the entire list of recipients. Also don't want to trigger
any kind of spam thing on my web host by sending out too many emails.

Anyway, any tips appreciated.

Thanks,
Chris

Oct 24 '07 #1
4 1982
On Wed, 2007-10-24 at 16:54 +0000, chris wrote:
I need to maintain a list of subscribers to an email list for a
"newsletter" that will be sent via a web form probably once a month.
I anticipate low numbers--tens to maybe one hundred subscribers at the
most. Just curious what the best way to code this is. Should I just
loop through the addresses and send one-off emails to each, or is it
better to somehow send to every recipient in one shot? One thing I
would like to avoid in the latter scenario is each recipient being
able to see the entire list of recipients. Also don't want to trigger
any kind of spam thing on my web host by sending out too many emails.

Anyway, any tips appreciated.

Thanks,
Chris
Before you reinvent the wheel, you should look into using a mailing list
manager, Mailman for example:

http://www.gnu.org/software/mailman/index.html

Regardless, confirmed double-opt-in should be a requirement as should a
mechanism for subscribers to unsubscribe themselves.

Using a 'list address' as the from address and using bcc addressing will
prevent your recipients from being able to see all the other recipient
addresses.

Oct 24 '07 #2
A mailing list manager is really overkill for what he is trying to do
*IF* he is not maintaining a discussion list. A "newsletter" list
doesn't sound like a discussion list, especially since he wants to hide
the email addresses of the other people.

If you want to manage your mailing list in a mail client like Mozilla
Thunderbird, you can export them in CSV format. You could put some
string in a certain field that would denote that someone is on the
mailing list, and you could compile the email addresses rather easily
and send out a message via the mailto: protocol (which I will use via
the 'open' command available in MacOSX).

import os

subject = '' # note: you will have problems if you insert certain
characters.
body = '' # You are better off simply writing the message subject
and body once your mail client starts up.

to = ''
cc = ''
bcc=','.join("""on*@one.com
tw*@two.com
th***@three.com
fo**@four.com
fi**@five.com""".splitlines())
addresses = ''

headers = 'TO=' + to + '&CC=' + cc + '&BCC=' + bcc
url = 'mailto:' + addresses + '?subject=' + subject + '&' + headers +
'&body=' + body
os.system('open ' + url)
Contact me off list if you would like a little code to help you even
more. I suspect there is a little bug in this code, but the idea is there.


Adam Lanier wrote:
On Wed, 2007-10-24 at 16:54 +0000, chris wrote:
>I need to maintain a list of subscribers to an email list for a
"newsletter" that will be sent via a web form probably once a month.
I anticipate low numbers--tens to maybe one hundred subscribers at the
most. Just curious what the best way to code this is. Should I just
loop through the addresses and send one-off emails to each, or is it
better to somehow send to every recipient in one shot? One thing I
would like to avoid in the latter scenario is each recipient being
able to see the entire list of recipients. Also don't want to trigger
any kind of spam thing on my web host by sending out too many emails.

Anyway, any tips appreciated.

Thanks,
Chris


Before you reinvent the wheel, you should look into using a mailing list
manager, Mailman for example:

http://www.gnu.org/software/mailman/index.html

Regardless, confirmed double-opt-in should be a requirement as should a
mechanism for subscribers to unsubscribe themselves.

Using a 'list address' as the from address and using bcc addressing will
prevent your recipients from being able to see all the other recipient
addresses.


--
Shane Geiger
IT Director
National Council on Economic Education
sg*****@ncee.net | 402-438-8958 | http://www.ncee.net

Leading the Campaign for Economic and Financial Literacy
Oct 25 '07 #3
On Wed, 24 Oct 2007 23:08:14 -0500, Shane Geiger wrote:
A mailing list manager is really overkill for what he is trying to do
*IF* he is not maintaining a discussion list.
It's not overkill at all. Mailman is easy to install (at least on a Red
Hat based Linux system, your mileage may vary elsewhere) and easy to use
*and* for bonus marks it's written in Python.

A "newsletter" list
doesn't sound like a discussion list, especially since he wants to hide
the email addresses of the other people.
There's more to running a mailing list than just sending emails. How do
you handle archives, the invariable complaints of missing newsletters,
requests for subscriptions, unsubscriptions, and temporary "I'll be on
holiday for a month, don't email me until I return" requests? And even if
it is not a discussion list, people expect to be able to write back to
the author/editor of the newsletter.

--
Steven.
Oct 25 '07 #4
On Thu, Oct 25, 2007 at 04:47:51AM -0000, Steven D'Aprano wrote:
On Wed, 24 Oct 2007 23:08:14 -0500, Shane Geiger wrote:
A mailing list manager is really overkill for what he is trying to do
*IF* he is not maintaining a discussion list.
It's not overkill at all. Mailman is easy to install (at least on a Red
Hat based Linux system, your mileage may vary elsewhere) and easy to use
*and* for bonus marks it's written in Python.
There's very little that Mailman is not overkill for. Running as a
daemon and managing its own queue is completely unneccessary; that's
what the MTA is for.

Enemies of Carlotta is also written in Python, except it's written sanely.

http://liw.iki.fi/liw/eoc/ or 'enemies-of-carlotta' in Debian.

Alternatively, SmartList is written as a set of procmail filters;
available from http://procmail.org/ or 'smartlist' in Debian.
A "newsletter" list
doesn't sound like a discussion list, especially since he wants to hide
the email addresses of the other people.
There's more to running a mailing list than just sending emails. How do
you handle archives, the invariable complaints of missing newsletters,
requests for subscriptions, unsubscriptions, and temporary "I'll be on
holiday for a month, don't email me until I return" requests? And even if
it is not a discussion list, people expect to be able to write back to
the author/editor of the newsletter.
Being able to reply to the author/editor is something that has been
possible via email for 25+ years. You don't need a mailing list
manager for it.

--
Benjamin A'Lee :: bm*@subvert.org.uk
http://subvert.org.uk/~bma/
"It is forbidden to kill; therefore all murderers are punished unless they kill
in large numbers and to the sound of trumpets." - Voltaire

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.4 (FreeBSD)

iD8DBQFHIJEKEUZDNrttL6ARApUwAJ9ZLuqZVvfLuuNTIm/EI1BUFgLh/gCfeMy2
tezYKLBc2bKz0mv4i0YEQEI=
=SYFo
-----END PGP SIGNATURE-----

Oct 25 '07 #5

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

4
by: Thom McGrath | last post by:
I'm writing a simple mailing list program, and I would like to know what the suggested method of sending a large number of emails to a list of addresses. (sounds like spam, no?) It's perfectly...
11
by: Google Mike | last post by:
I've got RH9 Linux with default PHP. Is there a way to send email on Linux to an Exchange Server from PHP and/or other tools when there is *NOT* SMTP access? Has anyone figured out a way to...
11
by: DrUg13 | last post by:
In java, this seems so easy. You need a new object Object test = new Object() gives me exactly what I want. could someone please help me understand the different ways to do the same thing in...
4
by: jas | last post by:
I have a basic client/server socket situation setup....where the server accepts a connection and then waits for commands. On the client side, I create a socket, connect to the server...then I...
2
by: sstevens | last post by:
Does anyone have suggesstions for ASP.NET deployment best practices. This is in the context of a large organization where developers do not have admin access to web servers. The idea of buliding...
1
by: Phill. W | last post by:
Have Our Friends in Redmond put delay loops into the SMTPMail.Send() method, or does it /really/ take almost a second to send a mail message? I've written a windows service that send emails. ...
7
by: Rich Milburn [MVP] | last post by:
Ok I am not a programmer, I copied some code and very painfully got it working in VB6. I can adjust the volume with waveOutSetVolume on winmm.dll. But I could not seem to be able to figure out how...
10
by: rAinDeEr | last post by:
Hi, I am trying to create around 70 tablespaces for around 100 tables.. Am using DB2 UDB 8.2 in Linux environment... This is one i generated through Control centre.... CREATE REGULAR...
2
by: rn5a | last post by:
A Form has a select list which is populated from a MS-Access database table. The DB table from where the select list is populated has 2 columns - CountryID & CountryName. When the Form is posted,...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 7 Feb 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:30 (7.30PM). In this month's session, the creator of the excellent VBE...
0
by: DolphinDB | last post by:
The formulas of 101 quantitative trading alphas used by WorldQuant were presented in the paper 101 Formulaic Alphas. However, some formulas are complex, leading to challenges in calculation. Take...
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
by: ryjfgjl | last post by:
ExcelToDatabase: batch import excel into database automatically...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.