Index: openacs-4/packages/acs-mail-lite/acs-mail-lite.info =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/acs-mail-lite.info,v diff -u -r1.35 -r1.36 --- openacs-4/packages/acs-mail-lite/acs-mail-lite.info 9 Jan 2008 12:11:54 -0000 1.35 +++ openacs-4/packages/acs-mail-lite/acs-mail-lite.info 9 Jan 2008 12:45:24 -0000 1.36 @@ -36,7 +36,6 @@ - Index: openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-init.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-init.tcl,v diff -u -r1.9 -r1.10 --- openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-init.tcl 18 Apr 2007 09:13:54 -0000 1.9 +++ openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-init.tcl 9 Jan 2008 12:45:24 -0000 1.10 @@ -10,8 +10,6 @@ # Default interval is 1 minute. ad_schedule_proc -thread t 60 acs_mail_lite::sweeper -# Run the complex_sweeper every 180s (3min) -ad_schedule_proc -thread t 180 acs_mail_lite::complex_sweeper set queue_dir [parameter::get_from_package_key -parameter "BounceMailDir" -package_key "acs-mail-lite"] Index: openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl,v diff -u -r1.74 -r1.75 --- openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl 9 Jan 2008 12:11:55 -0000 1.74 +++ openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl 9 Jan 2008 12:45:24 -0000 1.75 @@ -41,12 +41,6 @@ return $domain } - ad_proc -private bounce_sendmail {} { - @returns path to the sendmail executable - } { - return [get_parameter -name "SendmailBin"] - } - ad_proc -private bounce_prefix {} { @returns bounce prefix for x-envelope-from } { @@ -176,92 +170,26 @@ ns_sendmail $to_address $from_addr $subject $body $eh $bcc } else { - if {[bounce_sendmail] eq "SMTP"} { - ## Terminate body with a solitary period - foreach line [split $msg "\n"] { - if {"." eq [string trim $line]} { - append data . - } - #AG: ensure no \r\r\n terminations. - set trimmed_line [string trimright $line \r] - append data "$trimmed_line\r\n" + ## Terminate body with a solitary period + foreach line [split $msg "\n"] { + if {"." eq [string trim $line]} { + append data . } - append data . - - smtp -from_addr $from_addr -sendlist $to_addr -msg $data -valid_email_p $valid_email_p -message_id $message_id -package_id $package_id - if {$bcc ne ""} { - smtp -from_addr $from_addr -sendlist $bcc -msg $data -valid_email_p $valid_email_p -message_id $message_id -package_id $package_id - } - - } else { - sendmail -from_addr $from_addr -sendlist $to_addr -msg $msg -valid_email_p $valid_email_p -message_id $message_id -package_id $package_id - if {$bcc ne ""} { - sendmail -from_addr $from_addr -sendlist $bcc -msg $msg -valid_email_p $valid_email_p -message_id $message_id -package_id $package_id - } + #AG: ensure no \r\r\n terminations. + set trimmed_line [string trimright $line \r] + append data "$trimmed_line\r\n" } + append data . + smtp -from_addr $from_addr -sendlist $to_addr -msg $data -valid_email_p $valid_email_p -message_id $message_id -package_id $package_id + if {$bcc ne ""} { + smtp -from_addr $from_addr -sendlist $bcc -msg $data -valid_email_p $valid_email_p -message_id $message_id -package_id $package_id + } } } #--------------------------------------- - ad_proc -private sendmail { - -from_addr:required - -sendlist:required - -msg:required - {-valid_email_p 0} - {-cc ""} - -message_id:required - -package_id:required - } { - Sending mail through sendmail. - @option from_addr mail sender - @option sendlist list of mail recipients - @option msg mail to be sent (subject, header, body) - @option valid_email_p flag if email needs to be checked if it's bouncing or - if calling code already made sure that the receiving email addresses - are not bouncing (this increases performance if mails are send in a batch process) - @option message_id message-id of the mail - @option package_id package_id of the sending package - (needed to call package-specific code to deal with bounces) - } { - array set rcpts $sendlist - if {[info exists rcpts(email)]} { - foreach rcpt $rcpts(email) rcpt_id $rcpts(user_id) rcpt_name $rcpts(name) { - if { $valid_email_p || ([acs_mail_lite::utils::valid_email_p -email $rcpt] && ![bouncing_email_p -email $rcpt]) } { - with_finally -code { - set sendmail [list [bounce_sendmail] "-f[bounce_address -user_id $rcpt_id -package_id $package_id -message_id $message_id]" "-t" "-i"] - - # add username if it exists - if {$rcpt_name ne ""} { - set pretty_to "$rcpt_name <$rcpt>" - } else { - set pretty_to $rcpt - } - - # substitute all "\r\n" with "\n", because piped text should only contain "\n" - regsub -all "\r\n" $msg "\n" msg - - if {[catch { - set err1 {} - set f [open "|$sendmail" "w"] - puts $f "From: $from_addr\nTo: $pretty_to\nCC: $cc\n$msg" - set err1 [close $f] - } err2]} { - ns_log Error "Attempt to send From: $from_addr\nTo: $pretty_to\n$msg failed.\nError $err1 : $err2" - } - } -finally { - } - } else { - ns_log Debug "acs-mail-lite: Email bouncing from $rcpt, mail not sent and deleted from queue" - } - # log mail sending time - if {$rcpt_id ne ""} { log_mail_sending -user_id $rcpt_id } - } - } - } - - #--------------------------------------- ad_proc -private smtp { -multi_token:required -headers:required Index: openacs-4/packages/acs-mail-lite/tcl/apm-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/apm-callback-procs.tcl,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ openacs-4/packages/acs-mail-lite/tcl/apm-callback-procs.tcl 9 Jan 2008 12:45:24 -0000 1.1 @@ -0,0 +1,34 @@ +ad_library { + + Installation procs for acs-mail-lite + + @author Emmanuelle Raffenne (eraffenne@gmail.com) +} + +namespace eval acs_mail_lite {} + +ad_proc -private acs_mail_lite::after_upgrade { + {-from_version_name:required} + {-to_version_name:required} +} { + After upgrade callback for acs-mail-lite +} { + apm_upgrade_logic \ + -from_version_name $from_version_name \ + -to_version_name $to_version_name \ + -spec { + 5.4.0d2 5.4.0d3 { + db_transaction { + db_dml remove_param_values { + delete from apm_parameter_values where parameter_id in (select parameter_id from apm_parameters where package_key = 'acs-mail-lite' and parameter_name='SendmailBin') + } + db_dml remove_param { + delete from apm_parameters where package_key = 'acs-mail-lite' and parameter_name='SendmailBin' + } + } on_error { + ns_log Error "acs-mail-lite::after_upgrade from 5.4.0d2 to 5.4.0d3: $errmsg" + } + } + } +} + Index: openacs-4/packages/acs-mail-lite/tcl/bounce-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/Attic/bounce-procs.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-mail-lite/tcl/bounce-procs.tcl 23 Nov 2007 16:19:16 -0000 1.6 +++ openacs-4/packages/acs-mail-lite/tcl/bounce-procs.tcl 9 Jan 2008 12:45:24 -0000 1.7 @@ -14,13 +14,6 @@ namespace eval acs_mail_lite { #--------------------------------------- - ad_proc -private bounce_sendmail {} { - @returns path to the sendmail executable - } { - return [parameter::get_from_package_key -package_key "acs-mail-lite" -parameter "SendmailBin"] - } - - #--------------------------------------- ad_proc -private bounce_prefix {} { @returns bounce prefix for x-envelope-from } {