@@ -66,9 +66,9 @@ function get_reply_type($request) {
6666 * @subpackage smtp/functions
6767 */
6868if (!hm_exists ('send_scheduled_message ' )) {
69- function send_scheduled_message ($ handler , $ mailbox , $ folder , $ msg_id , $ send_now = false ) {
70- $ msg_headers = $ mailbox ->get_message_headers ($ folder , $ msg_id );
71- $ mailbox_details = $ mailbox ->get_config ();
69+ function send_scheduled_message ($ handler , $ imapMailbox , $ folder , $ msg_id , $ send_now = false ) {
70+ $ msg_headers = $ imapMailbox ->get_message_headers ($ folder , $ msg_id );
71+ $ mailbox_details = $ imapMailbox ->get_config ();
7272 try {
7373 if (empty ($ msg_headers ['X-Schedule ' ])) {
7474 return false ;
@@ -85,31 +85,32 @@ function send_scheduled_message($handler, $mailbox, $folder, $msg_id, $send_now
8585 }
8686 $ profile = $ profiles [0 ];
8787 }
88- $ smtp = Hm_SMTP_List::connect ($ profile ['smtp_id ' ], false );
89-
90- if (! $ smtp || ! $ smtp ->authed ()) {
88+ $ smtpConfig = Hm_SMTP_List::dumpForMailbox ($ profile ['smtp_id ' ]);
89+ $ smtpMailbox = new Hm_Mailbox ($ profile ['smtp_id ' ], $ handler ->user_config , $ handler ->session , $ smtpConfig );
90+
91+ if (! $ smtpMailbox ->authed ()) {
9192 Hm_Msgs::add ("ERRFailed to authenticate to the SMTP server " );
9293 return ;
9394 }
94-
95- $ delivery_receipt = isset ($ msg_headers ['X-Delivery ' ]);
96-
97- $ recipients = [];
98- foreach (['To ' , 'Cc ' , 'Bcc ' ] as $ fld ) {
99- if (array_key_exists ($ fld , $ msg_headers )) {
100- $ recipients = array_merge ($ recipients , Hm_MIME_Msg::find_addresses ($ msg_headers [$ fld ]));
101- }
102- }
10395
104- $ msg_content = $ mailbox ->get_message_content ($ folder , $ msg_id , 0 );
105- $ from = process_address_fld ($ msg_headers ['From ' ]);
96+ $ delivery_receipt = isset ($ msg_headers ['X-Delivery ' ]);
10697
107- $ err_msg = $ smtp ->send_message ($ from [0 ]['email ' ], $ recipients , $ msg_content , $ delivery_receipt );
108- if (!$ err_msg ) {
109- $ mailbox ->delete_message ($ folder , $ msg_id , false );
110- save_sent_msg ($ handler , $ mailbox ->get_config ()['id ' ], $ mailbox , $ mailbox_details , $ msg_content , $ msg_id , false );
111- return true ;
98+ $ recipients = [];
99+ foreach (['To ' , 'Cc ' , 'Bcc ' ] as $ fld ) {
100+ if (array_key_exists ($ fld , $ msg_headers )) {
101+ $ recipients = array_merge ($ recipients , Hm_MIME_Msg::find_addresses ($ msg_headers [$ fld ]));
112102 }
103+ }
104+
105+ $ msg_content = $ imapMailbox ->get_message_content ($ folder , $ msg_id , 0 );
106+ $ from = process_address_fld ($ msg_headers ['From ' ]);
107+
108+ $ err_msg = $ smtpMailbox ->send_message ($ from [0 ]['email ' ], $ recipients , $ msg_content , $ delivery_receipt );
109+ if (!$ err_msg ) {
110+ $ imapMailbox ->delete_message ($ folder , $ msg_id , false );
111+ save_sent_msg ($ handler , $ imapMailbox ->get_config ()['id ' ], $ imapMailbox , $ mailbox_details , $ msg_content , $ msg_id , false );
112+ return true ;
113+ }
113114 }
114115 } catch (Exception $ e ) {
115116 Hm_Debug::add (sprintf ('ERRCannot send message: %s ' , $ msg_headers ['subject ' ]));
0 commit comments