Index: openacs-4/packages/mail-tracking/tcl/mail-tracking-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/mail-tracking/tcl/mail-tracking-procs.tcl,v diff -u -r1.3 -r1.4 --- openacs-4/packages/mail-tracking/tcl/mail-tracking-procs.tcl 17 Mar 2006 10:06:46 -0000 1.3 +++ openacs-4/packages/mail-tracking/tcl/mail-tracking-procs.tcl 14 May 2006 16:11:19 -0000 1.4 @@ -27,22 +27,39 @@ {-log_id ""} {-package_id:required} {-sender_id:required} - {-recipient_id:required} + {-recipient_ids:required} + {-cc_ids ""} + {-bcc_ids ""} + {-to_addr ""} + {-cc_addr ""} + {-bcc_addr ""} {-body ""} {-message_id:required} {-subject ""} {-object_id ""} {-context_id ""} - {-cc ""} } { Insert new log entry - @param cc CC E-Mail Address as recieved from the send procedures + + @param sender_id party_id of the sender + @param recipient_ids List of party_ids of recipients + @param cc_ids List of party_ids for recipients in the "CC" field + @param bcc_ids List of party_ids for recipients in the "BCC" field + @param to_addr List of email addresses seperated by "," who recieved the email in the "to" field but got no party_id + @param cc_addr List of email addresses seperated by "," who recieved the email in the "cc" field but got no party_id + @param bcc_addr List of email addresses seperated by "," who recieved the email in the "bcc" field but got no party_id + @param body Text of the message + @param message_id Message_id of the email + @param subject Subject of the email + @param object_id Object for which this message was sent + @param context_id Context in which this message was send. } { set creation_ip "127.0.0.1" - return [db_exec_plsql insert_log_entry {select acs_mail_log__new ( + + # First create the message entry + set log_id [db_exec_plsql insert_log_entry {select acs_mail_log__new ( :log_id, :message_id, - :recipient_id, :sender_id, :package_id, :subject, @@ -51,7 +68,24 @@ :creation_ip, :context_id, :object_id, - :cc + :cc_addr, + :bcc_addr, + :to_addr )}] + + # Now add the recipients to the log_id + foreach recipient_id $recipient_ids { + db_dml insert_recipient {insert into acs_mail_log_recipient_map (recipient_id,log_id,type) values (:recipient_id,:log_id,'to')} + } + + foreach recipient_id $cc_ids { + db_dml insert_recipient {insert into acs_mail_log_recipient_map (recipient_id,log_id,type) values (:recipient_id,:log_id,'cc')} + } + + foreach recipient_id $bcc_ids { + db_dml insert_recipient {insert into acs_mail_log_recipient_map (recipient_id,log_id,type) values (:recipient_id,:log_id,'bcc')} + } + + return $log_id }