View documentation | View script | License |
Download script | History | Other scripts by: crazyaxe |
30-Apr 16:35 UTC
[0.044] 16.43k
[0.044] 16.43k
Archive version of: massmailer.r ... version: 7 ... crazyaxe 24-Nov-2009Amendment note: better || Publicly available? Yes Rebol [title: "Mass mailer" version: 0.1.8 author: "Massimiliano Vessi" date: 29/9/2009 email: maxint@tiscali.it file: %massmailer.r Purpose: {"Mass emailng the world! Modify boundary if you use attachments."} ;following data are for www.rebol.org library ;you can find a lot of rebol script there library: [ level: 'beginner platform: 'all type: [tutorial tool] domain: [vid gui email ] tested-under: [windows linux] support: none license: [gpl] see-also: none ] ] header-script: system/script/header version: "Version: " append version header-script/version config: array 13 ; the file %mass_mailer_conf.txt contains all configurations ; from 1-8 fields are settings ; 9 oggetto, and on are last usage configuration either exists? %mass_mailer_conf.txt [ config: read/lines %mass_mailer_conf.txt ] [ alert "You must set access data. Please fill in data in Settings panel." ritardo: 2 ] configurazione_lay: layout [ across title "Settings" return text "Your email:" email_fl: field return text "SMTP server:" smtp_fl: field return text "SMTP user:" smtpuser_fl: field return text "SMTP password:" smtppass_fl: field return button "Save" [ poke config 1 to-email email_fl/text poke config 2 to-url smtp_fl/text poke config 7 to-string smtpuser_fl/text poke config 8 to-string smtppass_fl/text write %mass_mailer_conf.txt " " foreach item config [ write/append %mass_mailer_conf.txt item write/append %mass_mailer_conf.txt newline ] unview] button "Exit" [unview] ] aiuto_lay: layout [ title "HELP" text 180 {This is a mass email, it permits to send any number of emails without problems. It will send an email each 2 seconds. If you'll fill correctly settings panel, all will be alright. File loaded by Mass mailer must be in ASCII not in unicode. If you use attachments, use a correct boundary string. This program do his best with HTML email body. If you have problems, please contact me: maxint@tiscali.it } ] view layout [ across title "Mass mailing" return btn-help [ view/new aiuto_lay] text version return button "Settings" [ email_fl/text: to-string config/1 smtp_fl/text: to-string config/2 smtpuser_fl/text: to-string config/7 smtppass_fl/text: to-string config/8 show [email_fl smtp_fl smtpuser_fl smtppass_fl ] view/new configurazione_lay ] button "Reload last" [ oggetto/text: to-string config/9 a_lay/text: to-string config/10 b_lay/text: to-string config/11 c_lay/text: to-string config/12 ritardo/text: to-integer config/13 testo: read/string to-file config/10 db_mail2: read/lines to-file config/11 led1/data: true led2/data: true led3/data: true led4/data: true show [ oggetto a_lay b_lay c_lay led1 led2 led3 led4 ritardo] ] return led1: led text "Subject:" oggetto: field "subject" [led1/data: true show led1] return led2: led button "Body message" [ corpo_ind: request-file a_lay/text: to-string corpo_ind show a_lay testo: read/string to-file corpo_ind led2/data: true show led2 ] a_lay: field "no text file loaded, html files are the best!" return led3: led button "Email list" [ temp: to-file request-file db_mail: read temp db_mail: parse db_mail none sort db_mail db_mail2: copy unique db_mail write/lines temp db_mail2 b_lay/text: to-string temp show b_lay led3/data: true show led3 ] b_lay: field "no email list file loaded" return led4: led h3 "Boundary string (optional)" c_lay: field "es. boundary" [led4/data: true show led4 ] return text "Retard:" button 22x22 "+" [temp: to-integer ritardo/text temp: temp + 1 ritardo/text: to-string temp show ritardo] ritardo: field 40 "2" button 22x22 "-" [temp: to-integer ritardo/text temp: temp - 1 if temp < 1 [temp: 1] ritardo/text: to-string temp show ritardo] return button red "MASS MAILING!" [ il_content: rejoin [ "multipart/related; boundary=^"" c_lay/text "^"" ] set-net config il_header: make object! [ Content-Type: "text/html; charset=ISO-8859-15" X-REBOL: "View 2.7.6.3.1 http://WWW.REBOL.COM" Subject: to-string oggetto/text From: to-email config/1 Return-Path: to-email config/1 To: to-email config/1 Date: reform [now/date now/time] MIME-Version: "1.0" Content-Type: il_content ] counter: 0 b: length? db_mail2 a: confirm reform ["You are going to send" b "emails. I already deleted double entries. Do you want to proced?"] if a = true [ ;saving configurations poke config 9 to-string oggetto/text poke config 10 to-file a_lay/text ;body message poke config 11 to-file b_lay/text ; emails list poke config 12 to-string c_lay/text ; boundary string write %mass_mailer_conf.txt " " foreach item config [ write/append %mass_mailer_conf.txt item write/append %mass_mailer_conf.txt newline ] ;sending emails foreach record db_mail2 [ il_header/To: record counter: counter + 1 sped_lay/text: reform ["Sending email n." counter] show sped_lay send/header ( to-email record ) testo il_header wait to-integer ritardo/text ] alert reform ["Finished! You sent" counter "emails."] sped_lay/text: reform [ "Finished! You sent" counter "emails." ] show sped_lay ] ] return sped_lay: text red "____________________________" ] Notes
|