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 -N -r1.27 -r1.28 --- openacs-4/packages/acs-mail-lite/acs-mail-lite.info 22 Dec 2006 07:57:42 -0000 1.27 +++ openacs-4/packages/acs-mail-lite/acs-mail-lite.info 24 Dec 2006 11:09:52 -0000 1.28 @@ -7,7 +7,7 @@ f t - + Eric Lorenzo Timo Hentschel @@ -16,7 +16,7 @@ This package provides a simple ns_sendmail-like interface for sending messages, but queues messages in the database to ensure reliable sending and make sending a message 'transactional'. Prefered over acs-messaging or acs-mail. 2 - + Index: openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-callback-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-callback-procs.tcl,v diff -u -N -r1.11 -r1.12 --- openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-callback-procs.tcl 22 Dec 2006 07:57:43 -0000 1.11 +++ openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-callback-procs.tcl 24 Dec 2006 11:09:52 -0000 1.12 @@ -13,6 +13,7 @@ ad_proc -public -callback acs_mail_lite::complex_send { {-package_id:required} {-from_party_id:required} + {-from_addr ""} {-to_party_ids} {-cc_party_ids} {-bcc_party_ids} 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 -N -r1.64 -r1.65 --- openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl 22 Dec 2006 07:57:43 -0000 1.64 +++ openacs-4/packages/acs-mail-lite/tcl/acs-mail-lite-procs.tcl 24 Dec 2006 11:09:52 -0000 1.65 @@ -273,7 +273,7 @@ } return [list] } - + # loop over every incoming mail foreach msg $messages { ns_log Debug "load_mails: opening $msg" @@ -282,7 +282,6 @@ parse_email -file $msg -array email set email(to) [parse_email_address -email $email(to)] set email(from) [parse_email_address -email $email(from)] - # We execute all callbacks now callback acs_mail_lite::incoming_email -array email @@ -398,26 +397,36 @@ #now extract all parts (bodies/files) and fill the email array foreach part $all_parts { - switch [mime::getproperty $part content] { - "text/plain" { - lappend bodies [list "text/plain" [mime::getbody $part]] + + # Attachments have a "Content-disposition" part + # Therefore we filter out if it is an attachment here + if {[catch {mime::getheader $part Content-disposition}]} { + switch [mime::getproperty $part content] { + "text/plain" { + lappend bodies [list "text/plain" [mime::getbody $part]] + } + "text/html" { + lappend bodies [list "text/html" [mime::getbody $part]] + } } - "text/html" { - lappend bodies [list "text/html" [mime::getbody $part]] + } else { + set encoding [mime::getproperty $part encoding] + set body [mime::getbody $part -decode] + set content $body + set params [mime::getproperty $part params] + if {[lindex $params 0] == "name"} { + set filename [lindex $params 1] + } else { + set filename "" } - "application/octet-stream" { - set content_type [mime::getproperty $part content] - set encoding [mime::getproperty $part encoding] - set body [mime::getbody $part -decode] - set content $body - set params [mime::getproperty $part params] - if {[lindex $params 0] == "name"} { - set filename [lindex $params 1] - } else { - set filename "" - } - lappend files [list $content_type $encoding $filename $content] + + # Determine the content_type + set content_type [mime::getproperty $part content] + if {$content_type eq "application/octet-stream"} { + set content_type [ns_guesstype $filename] } + + lappend files [list $content_type $encoding $filename $content] } } Index: openacs-4/packages/acs-mail-lite/tcl/complex-send-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-mail-lite/tcl/Attic/complex-send-procs.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/acs-mail-lite/tcl/complex-send-procs.tcl 17 Dec 2006 20:11:55 -0000 1.4 +++ openacs-4/packages/acs-mail-lite/tcl/complex-send-procs.tcl 24 Dec 2006 11:09:52 -0000 1.5 @@ -384,9 +384,10 @@ # subject: convert 8-bit characters into MIME encoded words # see http://tools.ietf.org/html/rfc2047 - set subject_encoded [mime::word_encode "iso8859-1" base64 $subject] - regsub -all {\n} $subject_encoded {} subject_encoded - mime::setheader $multi_token Subject "$subject_encoded" + #set subject_encoded [mime::word_encode "iso8859-1" base64 $subject] + #regsub -all {\n} $subject_encoded {} subject_encoded + #mime::setheader $multi_token Subject "$subject_encoded" + mime::setheader $multi_token Subject "$subject" foreach header $extraheaders { mime::setheader $multi_token "[lindex $header 0]" "[lindex $header 1]" @@ -567,6 +568,7 @@ callback acs_mail_lite::complex_send \ -package_id $package_id \ -from_party_id [party::get_by_email -email $sender_addr] \ + -from_addr $sender_addr \ -to_party_ids $to_party_ids \ -cc_party_ids $cc_party_ids \ -bcc_party_ids $bcc_party_ids \ @@ -608,6 +610,7 @@ callback acs_mail_lite::complex_send \ -package_id $package_id \ -from_party_id $party_id($from_addr) \ + -from_addr $from_addr \ -to_addr $email \ -body $body \ -message_id $message_id \ @@ -636,6 +639,7 @@ callback acs_mail_lite::complex_send \ -package_id $package_id \ -from_party_id $party_id($from_addr) \ + -from_addr $from_addr \ -to_party_ids $party \ -body $body \ -message_id $message_id \