View in color | View documentation | License | Download script | History |
30-Apr 10:36 UTC
[0.048] 11.849k
[0.048] 11.849k
blast.rREBOL [
Title: "Email Blaster"
Date: 22-Jun-2000
File: %blast.r
Purpose: {Send an email to everyone on a spreadsheet of email addresses. Personalize the greeting for each. Keep a log of who was been sent the message.}
library: [
level: 'intermediate
platform: none
type: none
domain: 'email
tested-under: none
support: none
license: none
see-also: none
]
Version: 1.0.0
Author: "Anonymous"
]
letter-file: %letter.txt
names-file: %names.txt
date-stamp: now
;-- Who the email is FROM:
from-email: %who--domain--com
;-- Who the email should be replied to:
reply-email: %who--domain--com
;-- Subject line of email:
subj: "Message title"
;-- Organization line of email:
org: "Your org"
;-- Read form letter:
letter: read letter-file
;-- Read Excel spreadsheet: col1: email, col2: name
csv: read/lines names-file
targets: make block! length? csv
foreach line csv [append/only targets parse/all line ","]
;-- Verify data format:
foreach item targets [
if not all [
not error? try [item/1: load item/1]
email? item/1
string? item/2
][
print ["Invalid target:" mold item]
err-flag: true
]
]
if value? 'err-flag [halt]
;-- Create log file:
log-file: join %blast- [date-stamp/date "-" date-stamp/time/hour ".txt"]
print ["Log file is:" log-file]
write log-file reduce [date-stamp newline]
;-- Compose email header:
header: make system/standard/email [
subject: subj
from: from-email
reply: reply-email
Organization: org
date: to-idate date-stamp
]
;-- Compose and send each letter:
foreach item targets [
set [to-addr name] item
contents: rejoin ["Dear " name ";" newline newline letter]
send/header copy to-addr contents make header [to: to-addr]
print [to-addr "sent"]
write/append log-file reduce [to-addr newline]
]
halt Notes
|