ODS-Mail has an "Email Merge" feature that enables dynamic email message construction, merging content with data from:
These "merge-sources" may be local or remote HTTP-accessible files, including SPARQL SELECT Queries which deliver CSV-formatted output.
Just as printed mail merges once did, this provides a productive mechanism by which to generate email messages to dispatch information, on a highly focused basis, to relevant contacts.
Create or locate your recipient list ("merge-source" document), in any supported format --
BEGIN:VCARD VERSION:2.1 N:Gump;Forrest FN:Forrest Gump ORG:Bubba Gump Shrimp Co. TITLE:Shrimp Man PHOTO;GIF:http://www.example.com/dir_photos/my_photo.gif TEL;WORK;VOICE:(111) 555-1212 TEL;HOME;VOICE:(404) 555-1212 ADR;WORK:;;100 Waters Edge;Baytown;LA;30314;United States of America LABEL;WORK;ENCODING=QUOTED-PRINTABLE:100 Waters Edge=0D=0ABaytown, LA 30314=0D=0AUnited States of America ADR;HOME:;;42 Plantation St.;Baytown;LA;30314;United States of America LABEL;HOME;ENCODING=QUOTED-PRINTABLE:42 Plantation St.=0D=0ABaytown, LA 30314=0D=0AUnited States of America EMAIL;PREF;INTERNET:forrestgump@example.com REV:20080424T195243Z END:VCARD
key,firstName,lastName,mbox 0,John,Smith,john.smith@example.com 1,Anna,Clarks,anna.clarks@example.com 2,Rojer,Danrette,rojer.danrette@example.com 3,Kate,Sigton,kate.sigton@example.com 4,Tim,Craft,tim.craft@example.com
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT DISTINCT ?person, ?firstName, ?lastName, ?mbox WHERE { ?person a foaf:Person ; foaf:firstName ?firstName ; foaf:lastName ?lastName ; foaf:mbox ?mbox } LIMIT 100
http://example.com/sparql?default-graph-uri=&query=PREFIX+rdf%3A++%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX+foaf%3A+%3Chttp%3A%2F%2Fxmlns.com%2Ffoaf%2F0.1%2F%3E%0D%0ASELECT+DISTINCT+%3Fperson%2C+%3FfirstName%2C+%3FlastName%2C+%3Fmbox%0D%0AWHERE+%0D%0A++{%0D%0A++++%3Fperson+a+foaf%3APerson+%3B%0D%0A++++++++++++foaf%3AfirstName+%3FfirstName+%3B%0D%0A++++++++++++foaf%3AlastName++%3FlastName+%3B%0D%0A++++++++++++foaf%3Ambox++++++%3Fmbox+.%0D%0A++}++%0D%0ALIMIT+100&format=csv&CXML_redir_for_subjs=121&CXML_redir_for_hrefs=&timeout=30000&debug=on
"person","firstName","lastName","mbox" "http://www.miroslavmilic.com/#Miroslav%20Milic","Miroslav","Mili?","mailto:miroslav.milic@gmail.com" "http://www.morelab.deusto.es/resource/pcuriel","Pablo","Curiel","mailto:pablo.curiel.alamo@gmail.com" "http://www.morelab.deusto.es/resource/pcuriel","Pablo","Curiel","mailto:pcuriel@deusto.es" "http://www.morelab.deusto.es/resource/pcuriel","Pablo","Curiel","mailto:pablo.curiel@deusto.es" "http://tw.rpi.edu/instances/EricRozell","Eric","Rozell","mailto:rozele@rpi.edu" "http://tw.rpi.edu/instances/EricRozell","Eric","Rozell","mailto:rozele@rpi.edu" "http://tw.rpi.edu/instances/TimLebo","Tim","Lebo","mailto:lebot@rpi.edu" "http://f-dengler.de/foaf#fd","Frank","Dengler","mailto:frank.dengler@kit.edu" "http://f-dengler.de/foaf#fd","Frank","Dengler","mailto:dengler@aifb.uni-karlsruhe.de" "http://f-dengler.de/foaf#fd","Frank","Dengler","mailto:dengler@kit.edu" "http://f-dengler.de/foaf#fd","Frank","Dengler","mailto:frank.dengler@aifb.uni-karlsruhe.de"
To:
and Subject:
headers, and the message body.
{{place holder}}
) to indicate content merge insertion points.
{{Title}}
{{First Name}}
{{Middle Name}}
{{Last Name}}
{{Gender}}
{{Birthday}}
{{Company}}
{{Job Title}}
{{Home Street}}
{{Home Street 2}}
{{Home City}}
{{Home State}}
{{Home Postal Code}}
{{Home Country}}
{{Home Phone}}
{{Home Fax}}
{{E-mail Address}}
To: "{{name}}" <{{mbox}}>
To: Fred Jones fjones@example.com
To: "{{name}}" <{{mbox}}>
To: "Fred Jones" <fjones@example.com>
To: "Fred Jones" <fjones@example.com>
Dear {{firstname}},
Dear Fred,
"{{firstname}} {{lastName}}" <{{mbox}}>
"Fred Jones" <fjones@example.com>
mbox => E-mail Address lastName => Last Name firstName => First Name
{{mbox}}
," indicating the merge insertion points in a template