* Functions for message compositon: writing a message, attaching files etc.
*
* @author Thijs Kinkhorst <kink at squirrelmail.org>
- * @copyright © 1999-2007 The SquirrelMail Project Team
+ * @copyright 1999-2020 The SquirrelMail Project Team
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
* @version $Id$
* @package squirrelmail
* or Sendmail. If this parameter is non-
* empty, all other parameters are ignored.
* (OPTIONAL: default is empty)
+ * @param boolean $only_build_message_object When TRUE, only builds the
+ * message object that it
+ * intends to send and returns
+ * it (returned success code
+ * will be -1 and message ID
+ * emtpy) (OPTIONAL; default
+ * is FALSE)
*
- * @return array A two-element array, the first element being a
+ * @return array A three-element array, the first element being a
* boolean value indicating if the message was successfully
- * sent or not, and the second element being the message's
+ * sent or not, the second element being the message's
* assigned Message-ID, if available (only available as of
- * SquirrelMail 1.4.14 and 1.5.2)
+ * SquirrelMail 1.4.14 and 1.5.2), and the third element
+ * being the message object itself.
+ * If $only_build_message_object is TRUE, only the third
+ * element is useful; first two should be ignored - the
+ * message is never sent in this case.
*
*/
-function sq_send_mail($to, $subject, $body, $from, $cc='', $bcc='', $message='')
+function sq_send_mail($to, $subject, $body, $from, $cc='', $bcc='',
+ $message='', $only_build_message_object=FALSE)
{
require_once(SM_PATH . 'functions/mime.php');
$content_type = new ContentType('text/plain');
global $special_encoding, $default_charset;
if ($special_encoding)
- $rfc822_header->encoding = $special_encoding;
+ $header->encoding = $special_encoding;
else
- $rfc822_header->encoding = '8bit';
+ $header->encoding = '8bit';
if ($default_charset)
$content_type->properties['charset']=$default_charset;
$header->content_type = $content_type;
//sm_print_r($message);exit;
+ if ($only_build_message_object)
+ return array(-1, '', $message);
+
+
global $useSendmail;
require_once(SM_PATH . 'class/deliver/Deliver_SMTP.class.php');
$deliver = new Deliver_SMTP();
global $smtpServerAddress, $smtpPort, $pop_before_smtp,
- $domain, $pop_before_smtp_host;
+ $domain, $pop_before_smtp_host, $smtp_stream_options;
$authPop = (isset($pop_before_smtp) && $pop_before_smtp) ? true : false;
if (empty($pop_before_smtp_host)) $pop_before_smtp_host = $smtpServerAddress;
$pass = '';
get_smtp_user($user, $pass);
$stream = $deliver->initStream($message,$domain,0,
- $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host);
+ $smtpServerAddress, $smtpPort, $user, $pass, $authPop, $pop_before_smtp_host, $smtp_stream_options);
} else {
require_once(SM_PATH . 'class/deliver/Deliver_SendMail.class.php');
global $sendmail_path, $sendmail_args;
$success = $deliver->finalizeStream($stream);
}
- return array($success, $message_id);
+ return array($success, $message_id, $message);
}