New: Can use inline images.Everything seems to work with thunderbird and webmail gmail. New to be tested on other mail browsers.
This commit is contained in:
parent
02a0ee7d9e
commit
0d1229f522
@ -1610,10 +1610,15 @@ class SMTPs
|
|||||||
{
|
{
|
||||||
foreach ( $this->_msgRecipients[$_host][$_which] as $_addr => $_realName )
|
foreach ( $this->_msgRecipients[$_host][$_which] as $_addr => $_realName )
|
||||||
{
|
{
|
||||||
if ( $_realName )
|
if ( $_realName ) // DOL_CHANGE FIX
|
||||||
|
{
|
||||||
$_realName = '"' . $_realName . '"';
|
$_realName = '"' . $_realName . '"';
|
||||||
|
$_RCPT_list[] = $_realName . ' <' . $_addr . '@' . $_host . '>';
|
||||||
$_RCPT_list[] = $_realName . ' <' . $_addr . '@' . $_host . '>';
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$_RCPT_list[] = $_addr . '@' . $_host;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1977,10 +1982,12 @@ class SMTPs
|
|||||||
/*
|
/*
|
||||||
* @TODO Investigate "nested" boundary message parts
|
* @TODO Investigate "nested" boundary message parts
|
||||||
*/
|
*/
|
||||||
$content = 'Content-Type: multipart/mixed;' . "\r\n"
|
$content = 'Content-Type: multipart/related; boundary="' . $this->_getBoundary() . '"' . "\r\n";
|
||||||
. ' boundary="' . $this->_getBoundary() . '"' . "\r\n"
|
// TODO Restore
|
||||||
. "\r\n"
|
// . "\r\n"
|
||||||
. 'This is a multi-part message in MIME format.' . "\r\n";
|
// . 'This is a multi-part message in MIME format.' . "\r\n";
|
||||||
|
$content .= "Content-Transfer-Encoding: 8bit" . "\r\n";
|
||||||
|
$content .= "\r\n";
|
||||||
|
|
||||||
// Loop through message content array
|
// Loop through message content array
|
||||||
foreach ($this->_msgContent as $type => $_content )
|
foreach ($this->_msgContent as $type => $_content )
|
||||||
@ -1991,7 +1998,8 @@ class SMTPs
|
|||||||
foreach ( $_content as $_file => $_data )
|
foreach ( $_content as $_file => $_data )
|
||||||
{
|
{
|
||||||
|
|
||||||
$content .= "\r\n--" . $this->_getBoundary() . "\r\n"
|
// TODO Restore "\r\n"
|
||||||
|
$content .= "--" . $this->_getBoundary() . "\r\n"
|
||||||
. 'Content-Disposition: attachment; filename="' . $_data['fileName'] . '"' . "\r\n"
|
. 'Content-Disposition: attachment; filename="' . $_data['fileName'] . '"' . "\r\n"
|
||||||
. 'Content-Type: ' . $_data['mimeType'] . '; name="' . $_data['fileName'] . '"' . "\r\n"
|
. 'Content-Type: ' . $_data['mimeType'] . '; name="' . $_data['fileName'] . '"' . "\r\n"
|
||||||
. 'Content-Transfer-Encoding: base64' . "\r\n"
|
. 'Content-Transfer-Encoding: base64' . "\r\n"
|
||||||
@ -2004,18 +2012,43 @@ class SMTPs
|
|||||||
. $_data['data'] . "\r\n";
|
. $_data['data'] . "\r\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// DOL_CHANGE LDR
|
||||||
|
else if ( $type == 'image' )
|
||||||
|
{
|
||||||
|
// loop through all images
|
||||||
|
foreach ( $_content as $_image => $_data )
|
||||||
|
{
|
||||||
|
// TODO Restore "\r\n"
|
||||||
|
$content .= "--" . $this->_getBoundary() . "\r\n";
|
||||||
|
|
||||||
|
$content .= 'Content-Type: ' . $_data['mimeType'] . '; name="' . $_data['imageName'] . '"' . "\r\n"
|
||||||
|
. 'Content-Transfer-Encoding: base64' . "\r\n"
|
||||||
|
. 'Content-Disposition: inline; filename="' . $_data['imageName'] . '"' . "\r\n"
|
||||||
|
. 'Content-ID: <' . $_data['cid'] . '> ' . "\r\n";
|
||||||
|
|
||||||
|
if ( $this->getMD5flag() )
|
||||||
|
$content .= 'Content-MD5: ' . $_data['md5'] . "\r\n";
|
||||||
|
|
||||||
|
$content .= "\r\n"
|
||||||
|
. $_data['data'] . "\r\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$content .= "\r\n--" . $this->_getBoundary() . "\r\n"
|
// TODO Restore "\r\n"
|
||||||
|
$content .= "--" . $this->_getBoundary() . "\r\n"
|
||||||
. 'Content-Type: ' . $_content['mimeType'] . '; '
|
. 'Content-Type: ' . $_content['mimeType'] . '; '
|
||||||
. 'charset="' . $this->getCharSet() . '"';
|
// . 'charset="' . $this->getCharSet() . '"';
|
||||||
$content .= ( $type == 'html') ? '; name="HTML Part"' : '';
|
. 'charset=' . $this->getCharSet() . '';
|
||||||
|
|
||||||
|
// TODO Restore
|
||||||
|
// $content .= ( $type == 'html') ? '; name="HTML Part"' : '';
|
||||||
$content .= "\r\n";
|
$content .= "\r\n";
|
||||||
$content .= 'Content-Transfer-Encoding: ';
|
// $content .= 'Content-Transfer-Encoding: ';
|
||||||
$content .= ( $type == 'html') ? 'quoted-printable' : $this->getTransEncodeType();
|
// $content .= ( $type == 'html') ? 'quoted-printable' : $this->getTransEncodeType();
|
||||||
$content .= "\r\n"
|
// $content .= "\r\n"
|
||||||
. 'Content-Disposition: inline' . "\r\n"
|
// . 'Content-Disposition: inline' . "\r\n"
|
||||||
. 'Content-Description: ' . $type . ' message' . "\r\n";
|
// . 'Content-Description: ' . $type . ' message' . "\r\n";
|
||||||
|
|
||||||
if ( $this->getMD5flag() )
|
if ( $this->getMD5flag() )
|
||||||
$content .= 'Content-MD5: ' . $_content['md5'] . "\r\n";
|
$content .= 'Content-MD5: ' . $_content['md5'] . "\r\n";
|
||||||
@ -2026,7 +2059,8 @@ class SMTPs
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Close message boundries
|
// Close message boundries
|
||||||
$content .= "\r\n--" . $this->_getBoundary() . '--' . "\r\n" ;
|
// $content .= "\r\n--" . $this->_getBoundary() . '--' . "\r\n" ;
|
||||||
|
$content .= "--" . $this->_getBoundary() . '--' . "\r\n" ;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $content;
|
return $content;
|
||||||
@ -2066,6 +2100,36 @@ class SMTPs
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// DOL_CHANGE LDR
|
||||||
|
/**
|
||||||
|
* Method public void setImageInline( string )
|
||||||
|
*
|
||||||
|
* Image attachments are added to the content array as sub-arrays,
|
||||||
|
* allowing for multiple images for each outbound email
|
||||||
|
*
|
||||||
|
* @param string $strContent Image data to attach to message
|
||||||
|
* @param string $strImageName Image Name to give to attachment
|
||||||
|
* @param string $strMimeType Image Mime Type of attachment
|
||||||
|
* @return void
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
function setImageInline ( $strContent, $strImageName = 'unknown', $strMimeType = 'unknown', $strImageCid = 'unknown' )
|
||||||
|
{
|
||||||
|
if ( $strContent )
|
||||||
|
{
|
||||||
|
$this->_msgContent['image'][$strImageName]['mimeType'] = $strMimeType;
|
||||||
|
$this->_msgContent['image'][$strImageName]['imageName'] = $strImageName;
|
||||||
|
$this->_msgContent['image'][$strImageName]['cid'] = $strImageCid;
|
||||||
|
$this->_msgContent['image'][$strImageName]['data'] = $strContent;
|
||||||
|
|
||||||
|
if ( $this->getMD5flag() )
|
||||||
|
$this->_msgContent['image'][$strFileName]['md5'] = md5($strContent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// END DOL_CHANGE LDR
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method public void setSensitivity( string )
|
* Method public void setSensitivity( string )
|
||||||
*
|
*
|
||||||
@ -2361,9 +2425,9 @@ class SMTPs
|
|||||||
|
|
||||||
function socket_send_str ( $_strSend, $_returnCode = null, $CRLF = "\r\n" )
|
function socket_send_str ( $_strSend, $_returnCode = null, $CRLF = "\r\n" )
|
||||||
{
|
{
|
||||||
if ($this->_debug) $this->log.=$_strSend . ": ";
|
if ($this->_debug) $this->log.=$_strSend; // DOL_CHANGE LDR for log
|
||||||
fputs($this->socket, $_strSend . $CRLF);
|
fputs($this->socket, $_strSend . $CRLF);
|
||||||
if ($this->_debug) $this->log.=$_returnCode . "<br>";
|
if ($this->_debug) $this->log.=' ('.$_returnCode.')' . $CRLF;
|
||||||
|
|
||||||
if ( $_returnCode )
|
if ( $_returnCode )
|
||||||
return $this->server_parse($this->socket, $_returnCode);
|
return $this->server_parse($this->socket, $_returnCode);
|
||||||
@ -2435,6 +2499,9 @@ class SMTPs
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.8 2009/05/13 19:10:07 eldy
|
||||||
|
* New: Can use inline images.Everything seems to work with thunderbird and webmail gmail. New to be tested on other mail browsers.
|
||||||
|
*
|
||||||
* Revision 1.7 2009/05/13 14:49:30 eldy
|
* Revision 1.7 2009/05/13 14:49:30 eldy
|
||||||
* Fix: Make code so much simpler and solve a lot of problem with new version.
|
* Fix: Make code so much simpler and solve a lot of problem with new version.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -89,9 +89,14 @@ class CMailFile
|
|||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
|
// On definit fin de ligne
|
||||||
|
$this->eol="\n";
|
||||||
|
if (eregi('^win',PHP_OS)) $this->eol="\r\n";
|
||||||
|
if (eregi('^mac',PHP_OS)) $this->eol="\r";
|
||||||
|
|
||||||
// Evite caractere bizarre avec les accents
|
// Evite caractere bizarre avec les accents
|
||||||
//Todo l'envoi par mailing donne des caractères bizarre,
|
//Todo l'envoi par mailing donne des caractères bizarre,
|
||||||
// alors que l'envoi d'un document facture ou autre est correcte
|
// alors que l'envoi d'un document facture ou autre est correcte
|
||||||
$subject = $subject;
|
$subject = $subject;
|
||||||
$from = $from;
|
$from = $from;
|
||||||
|
|
||||||
@ -151,15 +156,10 @@ class CMailFile
|
|||||||
$this->mime_boundary = md5(uniqid("dolibarr"));
|
$this->mime_boundary = md5(uniqid("dolibarr"));
|
||||||
|
|
||||||
// On defini related_boundary
|
// On defini related_boundary
|
||||||
$this->related_boundary = md5(uniqid("dolibarr"));
|
// $this->related_boundary = md5(uniqid("dolibarr"));
|
||||||
|
|
||||||
// On defini alternative_boundary
|
// On defini alternative_boundary
|
||||||
$this->alternative_boundary = md5(uniqid("dolibarr"));
|
// $this->alternative_boundary = md5(uniqid("dolibarr"));
|
||||||
|
|
||||||
// On definit fin de ligne
|
|
||||||
$this->eol="\n";
|
|
||||||
if (eregi('^win',PHP_OS)) $this->eol="\r\n";
|
|
||||||
if (eregi('^mac',PHP_OS)) $this->eol="\r";
|
|
||||||
|
|
||||||
$smtp_headers = "";
|
$smtp_headers = "";
|
||||||
$mime_headers = "";
|
$mime_headers = "";
|
||||||
@ -182,15 +182,17 @@ class CMailFile
|
|||||||
$mime_headers = $this->write_mimeheaders($filename_list, $mimefilename_list);
|
$mime_headers = $this->write_mimeheaders($filename_list, $mimefilename_list);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
// On encode les images
|
|
||||||
// if ($this->atleastoneimage)
|
|
||||||
// {
|
|
||||||
$images_encoded = $this->write_images($this->images_encoded);
|
|
||||||
if (! empty($this->html)) $msg = $this->html;
|
if (! empty($this->html)) $msg = $this->html;
|
||||||
// }
|
|
||||||
|
|
||||||
// Corps message dans $text_body
|
// Corps message dans $text_body
|
||||||
$text_body = $this->write_body($msg, $filename_list);
|
$text_body = $this->write_body($msg);
|
||||||
|
|
||||||
|
// On encode les images
|
||||||
|
if ($this->atleastoneimage)
|
||||||
|
{
|
||||||
|
$images_encoded = $this->write_images($this->images_encoded);
|
||||||
|
//print 'xx'.sizeof($this->images_encoded['encoded']);
|
||||||
|
}
|
||||||
|
|
||||||
// Corps message suite (fichiers attaches) dans $text_encoded
|
// Corps message suite (fichiers attaches) dans $text_encoded
|
||||||
if ($this->atleastonefile)
|
if ($this->atleastonefile)
|
||||||
@ -219,7 +221,7 @@ class CMailFile
|
|||||||
$smtps->setCharSet($conf->file->character_set_client);
|
$smtps->setCharSet($conf->file->character_set_client);
|
||||||
|
|
||||||
$smtps->setSubject($this->encodetorfc2822($subject));
|
$smtps->setSubject($this->encodetorfc2822($subject));
|
||||||
$smtps->setTO($to);
|
$smtps->setTO(getValidAddress($to,2));
|
||||||
$smtps->setFrom($from);
|
$smtps->setFrom($from);
|
||||||
|
|
||||||
//if ($this->atleastoneimage) $msg = $this->html;
|
//if ($this->atleastoneimage) $msg = $this->html;
|
||||||
@ -236,7 +238,7 @@ class CMailFile
|
|||||||
{
|
{
|
||||||
foreach ($this->images_encoded as $img)
|
foreach ($this->images_encoded as $img)
|
||||||
{
|
{
|
||||||
$smtps->setImage($img['image_encoded'],$img['name'],$img['content_type'],$img['cid']);
|
$smtps->setImageInline($img['image_encoded'],$img['name'],$img['content_type'],$img['cid']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -293,9 +295,6 @@ class CMailFile
|
|||||||
//dol_syslog("CMailFile::sendfile message=\n".$message);
|
//dol_syslog("CMailFile::sendfile message=\n".$message);
|
||||||
|
|
||||||
|
|
||||||
if (! empty($conf->global->MAIN_MAIL_DEBUG)) $this->dump_mail();
|
|
||||||
|
|
||||||
|
|
||||||
// Si Windows, addr_from doit obligatoirement etre defini
|
// Si Windows, addr_from doit obligatoirement etre defini
|
||||||
if (isset($_SERVER["WINDIR"]))
|
if (isset($_SERVER["WINDIR"]))
|
||||||
{
|
{
|
||||||
@ -327,7 +326,11 @@ class CMailFile
|
|||||||
$bounce = $this->addr_from != '' ? "-f {$this->addr_from}" : "";
|
$bounce = $this->addr_from != '' ? "-f {$this->addr_from}" : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
$res = mail($dest,$this->encodetorfc2822($this->subject),stripslashes($this->message),$this->headers, $bounce);
|
$this->message=stripslashes($this->message);
|
||||||
|
|
||||||
|
if (! empty($conf->global->MAIN_MAIL_DEBUG)) $this->dump_mail();
|
||||||
|
|
||||||
|
$res = mail($dest,$this->encodetorfc2822($this->subject),$this->message,$this->headers, $bounce);
|
||||||
|
|
||||||
if (! $res)
|
if (! $res)
|
||||||
{
|
{
|
||||||
@ -367,6 +370,7 @@ class CMailFile
|
|||||||
if (! empty($conf->global->MAIN_MAIL_SMTPS_PW)) $this->smtps->setPW($conf->global->MAIN_MAIL_SMTPS_PW);
|
if (! empty($conf->global->MAIN_MAIL_SMTPS_PW)) $this->smtps->setPW($conf->global->MAIN_MAIL_SMTPS_PW);
|
||||||
//$smtps->_msgReplyTo = 'reply@web.com';
|
//$smtps->_msgReplyTo = 'reply@web.com';
|
||||||
|
|
||||||
|
|
||||||
$dest=$this->smtps->getFrom('org');
|
$dest=$this->smtps->getFrom('org');
|
||||||
if (! $dest)
|
if (! $dest)
|
||||||
{
|
{
|
||||||
@ -510,7 +514,9 @@ class CMailFile
|
|||||||
if (! $this->atleastonefile) $out.= "Content-Type: text/plain; boundary=\"".$this->mime_boundary."\"".$this->eol;
|
if (! $this->atleastonefile) $out.= "Content-Type: text/plain; boundary=\"".$this->mime_boundary."\"".$this->eol;
|
||||||
$out.= "Content-Transfer-Encoding: 8bit".$this->eol;
|
$out.= "Content-Transfer-Encoding: 8bit".$this->eol;
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$out.=$this->eol;
|
||||||
dol_syslog("CMailFile::write_smtpheaders smtp_header=\n".$out, LOG_DEBUG);
|
dol_syslog("CMailFile::write_smtpheaders smtp_header=\n".$out, LOG_DEBUG);
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
@ -534,7 +540,7 @@ class CMailFile
|
|||||||
{
|
{
|
||||||
//if (! $mimedone)
|
//if (! $mimedone)
|
||||||
//{
|
//{
|
||||||
// $out.= "Content-Type: multipart/mixed; boundary=\"".$this->mime_boundary."\"".$this->eol;
|
// $out.= "Content-Type: multipart/mixed; boundary=\"".$this->mime_boundary."\"".$this->eol;
|
||||||
// $mimedone=1;
|
// $mimedone=1;
|
||||||
//}
|
//}
|
||||||
if ($mimefilename_list[$i]) $filename_list[$i] = $mimefilename_list[$i];
|
if ($mimefilename_list[$i]) $filename_list[$i] = $mimefilename_list[$i];
|
||||||
@ -542,10 +548,10 @@ class CMailFile
|
|||||||
|
|
||||||
//if ($mimedone!=2 && $this->atleastoneimage)
|
//if ($mimedone!=2 && $this->atleastoneimage)
|
||||||
//{
|
//{
|
||||||
// $out.= "--" . $this->mime_boundary . $this->eol;
|
// $out.= "--" . $this->mime_boundary . $this->eol;
|
||||||
// $out.= "Content-Type: multipart/related; boundary=\"".$this->related_boundary."\"".$this->eol;
|
// $out.= "Content-Type: multipart/related; boundary=\"".$this->related_boundary."\"".$this->eol;
|
||||||
// $mimedone=2;
|
// $mimedone=2;
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -556,11 +562,10 @@ class CMailFile
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Permet d'ecrire le corps du message
|
* \brief Permet d'ecrire le corps du message (mode = 'mail')
|
||||||
* \param msgtext
|
* \param msgtext
|
||||||
* \param filename_list
|
|
||||||
*/
|
*/
|
||||||
function write_body($msgtext, $filename_list)
|
function write_body($msgtext)
|
||||||
{
|
{
|
||||||
global $conf;
|
global $conf;
|
||||||
|
|
||||||
@ -571,44 +576,57 @@ class CMailFile
|
|||||||
if ($this->msgishtml)
|
if ($this->msgishtml)
|
||||||
{
|
{
|
||||||
$out.= "--" . $this->mime_boundary . $this->eol;
|
$out.= "--" . $this->mime_boundary . $this->eol;
|
||||||
$out.= "Content-Type: text/html; charset=".$conf->file->character_set_client.$this->eol;
|
$out.= "Content-Type: text/html; charset=\"".$conf->file->character_set_client."\"".$this->eol;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$out.= "--" . $this->mime_boundary . $this->eol;
|
$out.= "--" . $this->mime_boundary . $this->eol;
|
||||||
$out.= "Content-Type: text/plain; charset=".$conf->file->character_set_client.$this->eol;
|
$out.= "Content-Type: text/plain; charset=\"".$conf->file->character_set_client."\"".$this->eol;
|
||||||
}
|
}
|
||||||
$out.= $this->eol;
|
$out.= $this->eol;
|
||||||
// }
|
// }
|
||||||
if ($this->msgishtml)
|
if ($this->msgishtml)
|
||||||
{
|
{
|
||||||
// Check if html header already in message
|
// Check if html header already in message
|
||||||
$out.= $this->checkIfHTML($msgtext);
|
$strContent = $this->checkIfHTML($msgtext);
|
||||||
|
|
||||||
/*if ($this->atleastonefile || $this->atleastoneimage)
|
/*if ($this->atleastonefile || $this->atleastoneimage)
|
||||||
{
|
{
|
||||||
if ($this->atleastonefile && $this->atleastoneimage)
|
if ($this->atleastonefile && $this->atleastoneimage)
|
||||||
{
|
{
|
||||||
$out.= $this->eol . "--" . $this->related_boundary . $this->eol;
|
$out.= $this->eol . "--" . $this->related_boundary . $this->eol;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$out.= $this->eol . "--" . $this->mime_boundary . $this->eol;
|
$out.= $this->eol . "--" . $this->mime_boundary . $this->eol;
|
||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$out.= $msgtext.$this->eol;
|
$strContent.= $msgtext;
|
||||||
/* if ($this->atleastonefile || $this->atleastoneimage)
|
/* if ($this->atleastonefile || $this->atleastoneimage)
|
||||||
{
|
{
|
||||||
$out.= $this->eol . "--" . $this->mime_boundary . $this->eol;
|
$out.= $this->eol . "--" . $this->mime_boundary . $this->eol;
|
||||||
}*/
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make RFC821 Compliant, replace bare linefeeds
|
||||||
|
$strContent = preg_replace("/(?<!\r)\n/si", "\r\n", $strContent );
|
||||||
|
|
||||||
|
$strContent = rtrim(wordwrap($strContent));
|
||||||
|
|
||||||
|
$out.=$strContent.$this->eol;
|
||||||
|
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct an uncomplete html string
|
||||||
|
*
|
||||||
|
* @param unknown_type $msg
|
||||||
|
* @return unknown
|
||||||
|
*/
|
||||||
function checkIfHTML($msg)
|
function checkIfHTML($msg)
|
||||||
{
|
{
|
||||||
if (!eregi('^[ \t]*<html',$msg))
|
if (!eregi('^[ \t]*<html',$msg))
|
||||||
@ -619,12 +637,9 @@ class CMailFile
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// $out.= $this->eol . "--" . $this->mime_boundary . $this->eol;
|
|
||||||
$out = $msg;
|
$out = $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
$out.=$this->eol;
|
|
||||||
|
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -654,6 +669,7 @@ class CMailFile
|
|||||||
$out.= "Content-Type: " . $mimetype_list[$i] . "; name=\"".$filename_list[$i]."\"".$this->eol;
|
$out.= "Content-Type: " . $mimetype_list[$i] . "; name=\"".$filename_list[$i]."\"".$this->eol;
|
||||||
$out.= "Content-Transfer-Encoding: base64".$this->eol;
|
$out.= "Content-Transfer-Encoding: base64".$this->eol;
|
||||||
$out.= "Content-Disposition: attachment; filename=\"".$filename_list[$i]."\"".$this->eol;
|
$out.= "Content-Disposition: attachment; filename=\"".$filename_list[$i]."\"".$this->eol;
|
||||||
|
$out.= "Content-Description: \""."File Attachment"."\"".$this->eol;
|
||||||
$out.= $this->eol;
|
$out.= $this->eol;
|
||||||
$out.= $encoded;
|
$out.= $encoded;
|
||||||
$out.= $this->eol;
|
$out.= $this->eol;
|
||||||
@ -666,8 +682,35 @@ class CMailFile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fin de tous les attachements
|
return $out;
|
||||||
// $out.= "--" . $this->mime_boundary . "--" . $this->eol;
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
\brief Permet d'attacher une image
|
||||||
|
\param images_list Tableau
|
||||||
|
\return out Chaine images encodees
|
||||||
|
*/
|
||||||
|
function write_images($images_list)
|
||||||
|
{
|
||||||
|
$out = '';
|
||||||
|
|
||||||
|
if ($images_list)
|
||||||
|
{
|
||||||
|
foreach ($images_list as $img)
|
||||||
|
{
|
||||||
|
dol_syslog("CMailFile::write_images: i=$i");
|
||||||
|
|
||||||
|
$out.= "--" . $this->mime_boundary . $this->eol;
|
||||||
|
$out.= "Content-Type: " . $img["content_type"] . "; name=\"".$img["name"]."\"".$this->eol;
|
||||||
|
$out.= "Content-Transfer-Encoding: base64".$this->eol;
|
||||||
|
$out.= "Content-Disposition: inline; filename=\"".$img["name"]."\"".$this->eol;
|
||||||
|
$out.= "Content-ID: <".$img["cid"].">".$this->eol;
|
||||||
|
$out.= $this->eol;
|
||||||
|
$out.= $img["image_encoded"];
|
||||||
|
$out.= $this->eol;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return $out;
|
return $out;
|
||||||
}
|
}
|
||||||
@ -788,6 +831,7 @@ class CMailFile
|
|||||||
|
|
||||||
foreach ($this->html_images as $img)
|
foreach ($this->html_images as $img)
|
||||||
{
|
{
|
||||||
|
// Read imahe file
|
||||||
if ($image = file_get_contents($images_dir.'/'.$img["name"]))
|
if ($image = file_get_contents($images_dir.'/'.$img["name"]))
|
||||||
{
|
{
|
||||||
// On garde que le nom de l'image
|
// On garde que le nom de l'image
|
||||||
@ -797,7 +841,6 @@ class CMailFile
|
|||||||
$this->images_encoded[$i]['name'] = $imgName;
|
$this->images_encoded[$i]['name'] = $imgName;
|
||||||
$this->images_encoded[$i]['content_type'] = $img["content_type"];
|
$this->images_encoded[$i]['content_type'] = $img["content_type"];
|
||||||
$this->images_encoded[$i]['cid'] = $img["cid"];
|
$this->images_encoded[$i]['cid'] = $img["cid"];
|
||||||
|
|
||||||
// Encodage de l'image
|
// Encodage de l'image
|
||||||
$this->images_encoded[$i]["image_encoded"] = chunk_split(base64_encode($image), 68, $this->eol);
|
$this->images_encoded[$i]["image_encoded"] = chunk_split(base64_encode($image), 68, $this->eol);
|
||||||
}
|
}
|
||||||
@ -817,42 +860,6 @@ class CMailFile
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Permet d'attacher une image
|
|
||||||
\param images_list Tableau
|
|
||||||
\return out Chaine images encodees
|
|
||||||
*/
|
|
||||||
function write_images($images_list)
|
|
||||||
{
|
|
||||||
$out = '';
|
|
||||||
|
|
||||||
if ($images_list)
|
|
||||||
{
|
|
||||||
foreach ($images_list as $img)
|
|
||||||
{
|
|
||||||
dol_syslog("CMailFile::write_images: i=$i");
|
|
||||||
|
|
||||||
$out.= "--" . $this->mime_boundary . $this->eol;
|
|
||||||
$out.= "Content-Type: " . $img["content_type"] . "; name=\"".$img["name"]."\"".$this->eol;
|
|
||||||
$out.= "Content-Transfer-Encoding: base64".$this->eol;
|
|
||||||
$out.= "Content-Disposition: inline; filename=\"".$img["name"]."\"".$this->eol;
|
|
||||||
$out.= "Content-ID: <".$img["cid"].">".$this->eol;
|
|
||||||
$out.= $this->eol;
|
|
||||||
$out.= $img["image_encoded"];
|
|
||||||
$out.= $this->eol;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* else
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Fin de tous les attachements
|
|
||||||
// $out.= "--" . $this->mime_boundary . "--" . $this->eol;
|
|
||||||
|
|
||||||
return $out;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user