[PLUG] mailx question

Rich Shepard rshepard at appl-ecosys.com
Mon Jun 3 19:43:13 UTC 2013


On Mon, 3 Jun 2013, Paul Heinlein wrote:

> That was an exercise left to the reader :-) because I don't know how you 
> currently store and retrieve your recipients' e-mail addresses.

Paul,

   Well, ... this reader could not find any examples to use as templates.
Names are in simple text files, not in any application.

> If all the file contained was the greeting name and e-mail address, you could 
> separate them anyway you'd like.

   OK. Now, the file contains only the e-mail address. I'll add the
addressee's name to it ...

> A CSV format would be easy, but it might break if the greeting name
> included a comma. A more robust file might use a colon, which is unlikely
> to occur in your data.

   ... using a colon. No name has a comma; they're all first names.

> Here's a trivial example:

   Thanks.

> A script that used those files -- here assumed to be named subscribers.txt 
> and news.m4 -- might work something like this:
>
> while read LINE; do
>  ADDR=$(echo $LINE | cut -d: -f1)
>  GRTG=$(echo $LINE | cut -d: -f2)
>  m4 -D GREETING="$GRTG" news.m4 | mail -s 'June News' $ADDR
> done < subscribers.txt

   This is an expanded version similar to the one-line script I used with
mailx. Looks good.

> There are, of course, several different ways to accomplish the same task, but 
> that might get you started.

   As with everything GNU there are multiple solutions to every problem. :-)
As long as the above works I won't devote more time to looking for different
solutions.

> An m4 template, by the way, is easy to construct and test, because by
> default m4 sends output to /dev/stdout.

   Aha! I missed that when I read the docs. Certainly makes it easy to test.

Much appreciated,

Rich

-- 
Richard B. Shepard, Ph.D.          |      Have knowledge, will travel.
Applied Ecosystem Services, Inc.   |
<http://www.appl-ecosys.com>     Voice: 503-667-4517      Fax: 503-667-8863




More information about the PLUG mailing list