Index: openacs-4/packages/dotlrn/dotlrn.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/dotlrn.info,v
diff -u -r1.123.2.5 -r1.123.2.6
--- openacs-4/packages/dotlrn/dotlrn.info 13 Dec 2005 15:32:34 -0000 1.123.2.5
+++ openacs-4/packages/dotlrn/dotlrn.info 15 Dec 2005 22:54:26 -0000 1.123.2.6
@@ -7,14 +7,14 @@
f
f
-
+
OpenACS
A Course Management System
2005-11-01
OpenACS
Course Management
-
+
@@ -79,6 +79,7 @@
+
Index: openacs-4/packages/dotlrn/tcl/community-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn/tcl/community-procs.tcl,v
diff -u -r1.191.2.19 -r1.191.2.20
--- openacs-4/packages/dotlrn/tcl/community-procs.tcl 13 Dec 2005 17:04:07 -0000 1.191.2.19
+++ openacs-4/packages/dotlrn/tcl/community-procs.tcl 15 Dec 2005 22:54:27 -0000 1.191.2.20
@@ -2248,78 +2248,93 @@
and community_id = :community_id
and type = :type
}] } {
- # no email in database, use default
- ns_log notice "DAVEB checking for default email community_id '${community_id}' type '${type}'"
- set default_email [lindex [callback dotlrn::default_member_email -community_id $community_id -to_user $to_user -type $type -var_list $var_list] 0]
- ns_log notice "DAVEB default email '${default_email}' community_id '${community_id}' type '${type}'"
- if {[llength $default_email]} {
- set from_addr [lindex $default_email 0]
- set subject [lindex $default_email 1]
- set email [lindex $default_email 2]
+
+ # Only use the default mail if this is set in a parameter (off by default).
+ if {[parameter::get_from_package_key -package_key "dotlrn" -parameter "DefaultCommunityJoinMailP" -default 0]} {
+ # no email in database, use default
+ ns_log notice "DAVEB checking for default email community_id '${community_id}' type '${type}'"
+ set default_email [lindex [callback dotlrn::default_member_email -community_id $community_id -to_user $to_user -type $type -var_list $var_list] 0]
+ ns_log notice "DAVEB default email '${default_email}' community_id '${community_id}' type '${type}'"
+ if {[llength $default_email]} {
+ set from_addr [lindex $default_email 0]
+ set subject [lindex $default_email 1]
+ set email [lindex $default_email 2]
+ }
+ } else {
+ set subject ""
}
}
- ns_log notice "DAVEB override email '${override_email}' override_subject '${override_subject}'"
- if {[exists_and_not_null override_email]} {
- set email $override_email
- }
- if {[exists_and_not_null override_subject]} {
- set subject $override_subject
- }
- if {[info exists email] && ![string equal "" [string trim $email]]} {
- # user %varname% to substitute variables in email
- set subject_vars [lang::message::get_embedded_vars $subject]
- set email_vars [lang::message::get_embedded_vars $email]
- foreach var [concat $subject_vars $email_vars] {
- if {![info exists vars($var)]} {
- set vars($var) ""
- }
- }
- set var_list [array get vars]
- set subject [lang::message::format $subject $var_list]
- set email "[lang::message::format $email $var_list]"
-
- if {$message_only_p} {
- return [list $subject $email]
- }
- # Shamelessly cut & pasted from bulk mail
- if { [empty_string_p $from_addr] } {
- set from_addr [ad_system_owner]
+ # This is a trick. If the subject is set, send the mail. Otherwise don't.
+ # We gracefully assume that the subject will be empty if no mail should be send. Otherwise why
+ # bother to create the welcome message in the first place (will be spam filtered...) MalteS
+ if {![string eq $subject ""]} {
+ ns_log notice "DAVEB override email '${override_email}' override_subject '${override_subject}'"
+ if {[exists_and_not_null override_email]} {
+ set email $override_email
}
-
- if {[empty_string_p $email_send_to]} {
- set to_addr [cc_email_from_party $to_user]
- } else {
- set to_addr [cc_email_from_party $email_send_to]
- }
-
- set extra_headers [ns_set create]
-
- set message_html [ad_html_text_convert -from text/enhanced -to text/html $email]
- #set message_html [ad_html_text_convert -from html -to html $email]
- # some mailers are chopping off the last few characters.
- append message_html " "
- set message_text [ad_html_text_convert -from text/html -to text/plain $message_html]
-
- # Send email in iso8859-1 charset
- set message_data [build_mime_message $message_text $message_html]
- ns_set put $extra_headers MIME-Version [ns_set get $message_data MIME-Version]
- ns_set put $extra_headers Content-ID [ns_set get $message_data Content-ID]
- ns_set put $extra_headers Content-Type [ns_set get $message_data Content-Type]
- set message [ns_set get $message_data body]
-
- # both html and plain messages can now be sent the same way
- acs_mail_lite::send \
- -to_addr $to_addr \
- -from_addr $from_addr \
- -subject $subject \
- -body $message \
- -extraheaders $extra_headers
-
- set return_val 1
+ if {[exists_and_not_null override_subject]} {
+ set subject $override_subject
+ }
+ if {[info exists email] && ![string equal "" [string trim $email]]} {
+
+ # user %varname% to substitute variables in email
+ set subject_vars [lang::message::get_embedded_vars $subject]
+ set email_vars [lang::message::get_embedded_vars $email]
+ foreach var [concat $subject_vars $email_vars] {
+ if {![info exists vars($var)]} {
+ set vars($var) ""
+ }
+ }
+ set var_list [array get vars]
+ set subject [lang::message::format $subject $var_list]
+ set email "[lang::message::format $email $var_list]"
+
+ if {$message_only_p} {
+ return [list $subject $email]
+ }
+ # Shamelessly cut & pasted from bulk mail
+ if { [empty_string_p $from_addr] } {
+ set from_addr [ad_system_owner]
+ }
+
+ if {[empty_string_p $email_send_to]} {
+ set to_addr [cc_email_from_party $to_user]
+ } else {
+ set to_addr [cc_email_from_party $email_send_to]
+ }
+
+ set extra_headers [ns_set create]
+
+ set message_html [ad_html_text_convert -from text/enhanced -to text/html $email]
+ #set message_html [ad_html_text_convert -from html -to html $email]
+ # some mailers are chopping off the last few characters.
+ append message_html " "
+ set message_text [ad_html_text_convert -from text/html -to text/plain $message_html]
+
+ # Send email in iso8859-1 charset
+ set message_data [build_mime_message $message_text $message_html]
+ ns_set put $extra_headers MIME-Version [ns_set get $message_data MIME-Version]
+ ns_set put $extra_headers Content-ID [ns_set get $message_data Content-ID]
+ ns_set put $extra_headers Content-Type [ns_set get $message_data Content-Type]
+ set message [ns_set get $message_data body]
+
+ # both html and plain messages can now be sent the same way
+ acs_mail_lite::send \
+ -to_addr $to_addr \
+ -from_addr $from_addr \
+ -subject $subject \
+ -body $message \
+ -extraheaders $extra_headers
+
+ set return_val 1
+ } else {
+ set return_val 0
+ }
} else {
- set return_val 0
- }
+ # We did not send the mail so we still succeed :). MS
+ set return_val 1
+ }
return $return_val
}