[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Phpgroupware-cvs] phpgwapi/inc class.send.inc.php
From: |
Sigurd Nes |
Subject: |
[Phpgroupware-cvs] phpgwapi/inc class.send.inc.php |
Date: |
Fri, 16 Mar 2007 09:15:55 +0000 |
CVSROOT: /sources/phpgwapi
Module name: phpgwapi
Changes by: Sigurd Nes <sigurdne> 07/03/16 09:15:55
Modified files:
inc : class.send.inc.php
Log message:
Make this class do something
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/class.send.inc.php?cvsroot=phpgwapi&r1=1.21&r2=1.22
Patches:
Index: class.send.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/class.send.inc.php,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- class.send.inc.php 29 Oct 2006 10:46:35 -0000 1.21
+++ class.send.inc.php 16 Mar 2007 09:15:55 -0000 1.22
@@ -8,7 +8,7 @@
* @license http://www.fsf.org/licenses/lgpl.html GNU Lesser General
Public License
* @package phpgwapi
* @subpackage communication
- * @version $Id: class.send.inc.php,v 1.21 2006/10/29 10:46:35 sigurdne
Exp $
+ * @version $Id: class.send.inc.php,v 1.22 2007/03/16 09:15:55 sigurdne
Exp $
*/
/**
@@ -25,6 +25,7 @@
{
var $err = array('code','msg','desc');
var $to_res = array();
+ var $errorInfo;
function send()
{
@@ -33,7 +34,7 @@
$this->err['desc'] = ' ';
}
- function msg($service, $to, $subject, $body, $msgtype='',
$cc='', $bcc='', $from='', $sender='', $content_type='',
$boundary='Message-Boundary')
+ function msg($service, $to, $subject, $body, $msgtype='',
$cc='', $bcc='', $from='', $sender='', $content_type='',
$boundary='Message-Boundary',$attachments='')
{
if ($from == '')
{
@@ -47,132 +48,150 @@
switch( $service )
{
case 'email':
- $this->send_email($to, $subject, $body,
$msgtype, $cc, $bcc, $from, $sender, $content_type,
$boundary='Message-Boundary');
+ return $this->send_email($to, $subject,
$body, $msgtype, $cc, $bcc, $from, $sender, $content_type,
$boundary='Message-Boundary',$attachments);
break;
}
}
- function send_email($to, $subject, $body, $msgtype, $cc, $bcc,
$from, $sender, $content_type, $ignored)
+ function send_email($to, $subject, $body, $msgtype, $cc, $bcc,
$from, $sender, $content_type, $ignored,$attachments)
{
$smtp = createObject('phpgwapi.mailer_smtp');
$from_array = split('<', $from);
unset($from);
if ( count($from_array) == 2 )
{
- $smtp->From = $from_array[1];
- $stmp->FromName = $from_array[0];
+ $smtp->From = trim($from_array[1],'>');
+ $smtp->FromName = $from_array[0];
}
else
{
$smtp->From = $from_array[0];
}
- $to_array = split('<', $to);
- unset($to);
+ if(strpos($to,','))
+ {
+ $delimiter = ',';
+ }
+ else
+ {
+ $delimiter = ';';
+ }
+ $to = explode($delimiter, $to);
+
+ foreach ($to as $entry)
+ {
+ $to_array = split('<', $entry);
if ( count($to_array) == 2 )
{
- $smtp->AddAddress($to_array[1], $to_array[0]);
+
$smtp->AddAddress(trim($to_array[1],'>'), $to_array[0]);
}
else
{
$smtp->AddAddress($to_array[0]);
}
-
- $smtp->subject = $subject;
}
- /*
- $now = getdate();
- $header = 'Date: '.gmdate('D, d M Y H:i:s').'
+0000'."\n";
- $header .= 'From: '.$from."\n";
- if($from != $sender)
+ if($cc)
+ {
+ if(strpos($cc,','))
{
- $header .= 'Sender: '.$sender."\n";
+ $delimiter = ',';
}
- $header .= 'Reply-To:
'.$GLOBALS['phpgw_info']['user']['preferences']['email']['address']."\n";
- $header .= 'To: '.$to."\n";
- if (!empty($cc))
+ else
{
- $header .= 'Cc: '.$cc."\n";
+ $delimiter = ';';
}
- if (!empty($bcc))
+ $cc = explode($delimiter, $cc);
+
+ foreach ($cc as $entry)
{
- $header .= 'Bcc: '.$bcc."\n";
+ $cc_array = split('<', $entry);
+ if ( count($cc_array) == 2 )
+ {
+
$smtp->AddCC(trim($cc_array[1],'>'), $cc_array[0]);
}
- if (!empty($msgtype))
+ else
{
- $header .= 'X-phpGW-Type:
'.$msgtype."\n";
+ $smtp->AddCC($cc_array[0]);
}
- $header .= 'X-Mailer: phpGroupWare
(http://www.phpgroupware.org)'."\n";
-
- if (empty($content_type))
+ }
+ }
+ if($bcc)
+ {
+ if(strpos($bcc,','))
{
- $content_type ='plain';
+ $delimiter = ',';
}
-
- if (ereg($boundary, $body))
+ else
{
- $header .= 'Subject: ' .
stripslashes($subject) . "\n"
- . 'MIME-Version: 1.0'."\n"
- . 'Content-Type:
multipart/mixed;'."\n"
- . " boundary=\"$boundary\"\n\n"
- . "--$boundary\n"
- . 'Content-type: text/'
.$content_type . '; charset="'.lang('charset').'"'."\n";
-// if (!empty($msgtype))
-// {
-// $header .= "Content-type:
text/' .$content_type . '; phpgw-type=".$msgtype."\n";
-// }
+ $delimiter = ';';
+ }
+ $bcc = explode($delimiter, $bcc);
- $header .= 'Content-Disposition:
inline'."\n"
- . 'Content-transfer-encoding:
7BIT'."\n\n"
- . $body;
- $body = "";
+ foreach ($bcc as $entry)
+ {
+ $bcc_array = split('<', $entry);
+ if ( count($bcc_array) == 2 )
+ {
+
$smtp->AddBCC(trim($bcc_array[1],'>'), $bcc_array[0]);
}
else
{
- $header .= 'Subject:
'.stripslashes($subject)."\n"
- . 'MIME-version: 1.0'."\n"
- . 'Content-type: text/'
.$content_type . '; charset="'.lang('charset').'"'."\n";
- if (!empty($msgtype))
- {
- $header .= 'Content-type:
text/' .$content_type . '; phpgw-type='.$msgtype."\n";
+ $smtp->AddBCC($bcc_array[0]);
}
- $header .= 'Content-Disposition:
inline'."\n"
- . 'Content-description: Mail
message body'."\n";
}
- if
($GLOBALS['phpgw_info']['user']['preferences']['email']['mail_server_type'] ==
'imap' && $GLOBALS['phpgw_info']['user']['apps']['email'] &&
-
$GLOBALS['phpgw_info']['user']['preferences']['email']['use_sent_folder'])
- {
- if(!is_object($GLOBALS['phpgw']->msg))
- {
- $GLOBALS['phpgw']->msg =
createObject('email.mail_msg');
}
- $args_array = Array();
- $args_array['do_login'] = True;
- $args_array['folder'] =
$GLOBALS['phpgw_info']['user']['preferences']['email']['sent_folder_name'];
-
$GLOBALS['phpgw']->msg->begin_request($args_array);
-
$GLOBALS['phpgw']->msg->phpgw_append('Sent', $header."\n".$body, "\\Seen");
- $GLOBALS['phpgw']->msg->end_request();
+ $smtp->IsSMTP();
+ $smtp->Subject = $subject;
+ $smtp->Body = $body;
+ $smtp->AddCustomHeader('X-Mailer: phpGroupWare
(http://www.phpgroupware.org)');
+ $smtp->Port =
$GLOBALS['phpgw_info']['server']['smtp_port'] ?
$GLOBALS['phpgw_info']['server']['smtp_port'] : 25;
+ $smtp->Host =
$GLOBALS['phpgw_info']['server']['smtp_server'];
+ $smtp->Encoding = '8bit';
+ $smtp->CharSet = 'utf-8';
+ $smtp->PluginDir =
PHPGW_SERVER_ROOT."/phpgwapi/inc/phpmailer/";
+
+ if($content_type =='html')
+ {
+ $smtp->IsHTML(true);
}
- if (strlen($cc)>1)
+ else
{
- $to .= ','.$cc;
+ $smtp->IsHTML(false);
+ $smtp->WordWrap = 76;
}
- if (strlen($bcc)>1)
+ if (isset($attachments) && is_array($attachments))
{
- $to .= ','.$bcc;
+ while(list($key,$value) = each($attachments))
+ {
+ $smtp->AddAttachment
+ (
+ $value['file'],
+ utf8_decode($value['name']),
+ 'base64',
+ $value['type']
+ );
+ }
}
- $returnccode = $this->smail($to, '', $body,
$header);
- return $returnccode;
+ if($GLOBALS['phpgw_info']['server']['smtpAuth'] ==
'yes')
+ {
+ $smtp->SMTPAuth = true;
+ $smtp->Username =
$GLOBALS['phpgw_info']['server']['smtpUser'];
+ $smtp->Password =
$GLOBALS['phpgw_info']['server']['smtpPassword'];
}
- elseif ($type == 'nntp')
+
+ // set a higher timeout for big messages
+ @set_time_limit(120);
+ #$smtp->SMTPDebug = 10;
+ if(!$smtp->Send())
{
- // nothing is here?
+ $this->errorInfo = $smtp->ErrorInfo;
+ return false;
}
+ return true;
}
- */
// ==================================================[ some
sub-functions ]===
@@ -221,7 +240,7 @@
if ($enc_start == $w+1) // first word to encode
{
- $str .= '=?'.lang('charset').'?Q?';
+ $str .= '=?iso-8859-1?Q?';
}
$str .= $w+1 > $enc_end ?
str_replace('=3D','=',$s) : $s;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Phpgroupware-cvs] phpgwapi/inc class.send.inc.php,
Sigurd Nes <=