Skip to content

Commit f62d980

Browse files
committed
feat(backend): Removing SMTP connections using the Mailbox class
1 parent 34fcf4b commit f62d980

File tree

3 files changed

+12
-12
lines changed

3 files changed

+12
-12
lines changed

modules/imap/functions.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1683,32 +1683,32 @@ function flattenMessagesLists($messagesLists, $listSize) {
16831683
}
16841684

16851685
if (!hm_exists('save_sent_msg')) {
1686-
function save_sent_msg($handler, $imap_id, $imap, $imap_details, $msg, $msg_id, $show_errors = true) {
1686+
function save_sent_msg($handler, $imap_id, $mailbox, $imap_details, $msg, $msg_id, $show_errors = true) {
16871687
$specials = get_special_folders($handler, $imap_id);
16881688
if (array_key_exists('sent', $specials) && $specials['sent']) {
16891689
$sent_folder = $specials['sent'];
16901690
}
16911691

16921692
if (!$sent_folder) {
1693-
$auto_sent = $imap->get_special_use_mailboxes('sent');
1693+
$auto_sent = $mailbox->get_special_use_mailboxes('sent');
16941694
if (!array_key_exists('sent', $auto_sent)) {
16951695
return;
16961696
}
16971697
$sent_folder = $auto_sent['sent'];
16981698
}
16991699
if (!$sent_folder) {
1700-
Hm_Debug::add(sprintf("Unable to save sent message, no sent folder for IMAP %s", $imap_details['server']));
1700+
Hm_Debug::add(sprintf("Unable to save sent message, no sent folder for server %s %s", $mailbox->server_type(), $imap_details['server']));
17011701
}
17021702
$uid = null;
17031703
if ($sent_folder) {
1704-
Hm_Debug::add(sprintf("Attempting to save sent message for IMAP server %s in folder %s", $imap_details['server'], $sent_folder));
1705-
if (! $imap->store_message($sent_folder, $msg)) {
1704+
Hm_Debug::add(sprintf("Attempting to save sent message for server %s in folder %s", $mailbox->server_type(), $imap_details['server'], $sent_folder));
1705+
if (! $mailbox->store_message($sent_folder, $msg)) {
17061706
Hm_Msgs::add('ERRAn error occurred saving the sent message');
17071707
}
17081708

17091709
$mailbox_page = $imap->get_messages($sent_folder, 'ARRIVAL', true, 'ALL', 0, 10);
17101710
foreach ($mailbox_page[1] as $mail) {
1711-
$msg_header = $imap->get_message_headers($sent_folder, $mail['uid']);
1711+
$msg_header = $mailbox->get_message_headers($sent_folder, $mail['uid']);
17121712
if ($msg_header['Message-Id'] === $msg_id) {
17131713
$uid = $mail['uid'];
17141714
break;

modules/smtp/functions.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ function get_reply_type($request) {
6868
if (!hm_exists('send_scheduled_message')) {
6969
function send_scheduled_message($handler, $mailbox, $folder, $msg_id, $send_now = false) {
7070
$msg_headers = $mailbox->get_message_headers($folder, $msg_id);
71-
$mailbox_details = $mailbox->get_config();
72-
71+
$mailbox_details = $mailbox->get_config();
72+
$imap_profile = Hm_IMAP_List::fetch($mailbox_details['user'], $mailbox_details['server']);
7373
try {
7474
if (empty($msg_headers['X-Schedule'])) {
7575
return false;
@@ -87,9 +87,9 @@ function send_scheduled_message($handler, $mailbox, $folder, $msg_id, $send_now
8787
$profile = $profiles[0];
8888
}
8989

90-
$smtp = Hm_SMTP_List::connect($profile['smtp_id'], false);
90+
$smtp = new Hm_Mailbox($imap_profile['id'], $handler->user_config, $handler->session, $imap_profile);
9191

92-
if ($smtp && $smtp->authed()) {
92+
if ($smtp && $smtp->connect()) {
9393
$delivery_receipt = isset($msg_headers['X-Delivery']);
9494

9595
$recipients = [];

modules/smtp/modules.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1576,7 +1576,7 @@ public function process() {
15761576

15771577
foreach ($servers as $server_id => $config) {
15781578
$mailbox = new Hm_Mailbox($server_id, $this->user_config, $this->session, $config);
1579-
if ($mailbox && $mailbox->connect()) {
1579+
if ($mailbox->get_connection() != null && $mailbox->connect()) {
15801580
$folder = 'Scheduled';
15811581
$ret = $mailbox->get_messages($folder, 'DATE', false, 'ALL');
15821582
foreach ($ret[1] as $msg) {
@@ -2050,7 +2050,7 @@ function save_imap_draft($atts, $id, $session, $mod, $mod_cache, $uploaded_files
20502050
if (! $mailbox || ! $mailbox->connect()) {
20512051
return -1;
20522052
}
2053-
2053+
20542054
if (!empty($atts['schedule'])) {
20552055
$folder ='Scheduled';
20562056
if (!count($mailbox->get_folder_status($folder))) {

0 commit comments

Comments
 (0)