Skip to content

Commit cfab9e2

Browse files
committed
Use Hm_Mailbox in place of Hm_SMTP_List
1 parent fcbc065 commit cfab9e2

File tree

3 files changed

+28
-23
lines changed

3 files changed

+28
-23
lines changed

lib/servers.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,9 @@ public static function getForMailbox($id) {
290290

291291
public static function dumpForMailbox($id = false) {
292292
$list = self::dump($id, true);
293+
if ($id !== false) {
294+
return self::appendPasswordAndUsername($list);
295+
}
293296
foreach ($list as $index => $server) {
294297
$server = self::appendPasswordAndUsername($server);
295298
$list[$index] = $server;

modules/imap/site.css

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,8 @@
280280
}
281281
.jmap_section,
282282
.sent_setting,
283-
.imap_section {
283+
.imap_section,
284+
.ews_server_config_section {
284285
display: none;
285286
}
286287
.imap_server_setup .content_title {

modules/smtp/functions.php

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,9 @@ function get_reply_type($request) {
6666
* @subpackage smtp/functions
6767
*/
6868
if (!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

Comments
 (0)