From 43fa235da354c8b53aa69ba745c1d398a758fcaf Mon Sep 17 00:00:00 2001 From: svncommit <devs@roundcube.net> Date: Wed, 26 Oct 2005 05:42:19 -0400 Subject: [PATCH] --- program/steps/mail/sendmail.inc | 72 +++++++++++++++++++++-------------- 1 files changed, 43 insertions(+), 29 deletions(-) diff --git a/program/steps/mail/sendmail.inc b/program/steps/mail/sendmail.inc index e335931..ddd08f1 100644 --- a/program/steps/mail/sendmail.inc +++ b/program/steps/mail/sendmail.inc @@ -21,7 +21,8 @@ */ -require_once('lib/smtp.inc'); +//require_once('lib/smtp.inc'); +require_once('include/rcube_smtp.inc'); require_once('Mail/mime.php'); @@ -41,14 +42,12 @@ global $DB; // get identity record - $sql_result = $DB->query(sprintf("SELECT *, email AS mailto - FROM %s - WHERE identity_id=%d - AND user_id=%d - AND del!='1'", - get_table_name('identities'), - $id, - $_SESSION['user_id'])); + $sql_result = $DB->query("SELECT *, email AS mailto + FROM ".get_table_name('identities')." + WHERE identity_id=? + AND user_id=? + AND del<>'1'", + $id,$_SESSION['user_id']); if ($DB->num_rows($sql_result)) { @@ -146,39 +145,44 @@ foreach ($_FILES['_attachments']['tmp_name'] as $i => $filepath) $MAIL_MIME->addAttachment($filepath, $files['type'][$i], $files['name'][$i], TRUE); +// encoding settings for mail composing +$message_param = array('text_encoding' => '7bit', + 'html_encoding' => 'quoted-printable', + 'head_encoding' => 'quoted-printable', + 'head_charset' => 'ISO-8859-1', + 'html_charset' => 'ISO-8859-1', + 'text_charset' => 'ISO-8859-1'); // compose message body and get headers -$msg_body = $MAIL_MIME->get(); +$msg_body = $MAIL_MIME->get($message_param); $msg_subject = $headers['Subject']; // send thru SMTP server using cusotm SMTP library if ($CONFIG['smtp_server']) { - // connect to SMTP server - $smtp_conn = smtp_connect($CONFIG['smtp_server'], '25', $CONFIG['smtp_user'], $CONFIG['smtp_pass']); - - if ($smtp_conn) - { - // generate list of recipients - $recipients = $mailto.', '.$headers['Cc'].', '.$headers['Bcc']; - $a_recipients = smtp_expand($recipients); + // generate list of recipients + $a_recipients = array($mailto); - // generate message headers - $header_str = $MAIL_MIME->txtHeaders($headers); - - // send message - $sent = smtp_mail($smtp_conn, $from, $a_recipients, $header_str."\r\n".$msg_body, FALSE); - } - + if (strlen($headers['Cc'])) + $a_recipients[] = $headers['Cc']; + if (strlen($headers['Bcc'])) + $a_recipients[] = $headers['Bcc']; + + // generate message headers + $header_str = $MAIL_MIME->txtHeaders($headers); + + // send message + $sent = smtp_mail($from, $a_recipients, $header_str, $msg_body); + // log error - if (!$smtp_conn || !$sent) + if (!$sent) { raise_error(array('code' => 800, 'type' => 'smtp', 'line' => __LINE__, 'file' => __FILE__, - 'message' => "Connection failed: $smtp_error"), TRUE, FALSE); + 'message' => "SMTP error: $SMTP_ERROR"), TRUE, FALSE); } } @@ -217,10 +221,20 @@ // check if mailbox exists if (!in_array_nocase($CONFIG['sent_mbox'], $IMAP->list_mailboxes())) - $IMAP->create_mailbox($CONFIG['sent_mbox'], TRUE); + $mbox = $IMAP->create_mailbox($CONFIG['sent_mbox'], TRUE); + else + $mbox = TRUE; // append message to sent box - $saved = $IMAP->save_message($CONFIG['sent_mbox'], $header_str."\r\n".$msg_body); + if ($mbox) + $saved = $IMAP->save_message($CONFIG['sent_mbox'], $header_str."\r\n".$msg_body); + + // raise error if saving failed + if (!$saved) + raise_error(array('code' => 800, + 'type' => 'imap', + 'file' => __FILE__, + 'message' => "Could not save message in $CONFIG[sent_mbox]"), TRUE, FALSE); } -- Gitblit v1.9.1