Fix: sous windows lorsqu'on dfinissait la constante MAIN_MAIL_SMTP_SERVER le mail ne partait pas car la variable php "sendmail_from" n'tait pas dfinie

This commit is contained in:
Regis Houssin
2007-06-06 14:53:31 +00:00
parent 5198eac7fd
commit 71430a3d25

View File

@@ -164,24 +164,25 @@ class CMailFile
*/ */
function sendfile() function sendfile()
{ {
global $conf; global $conf;
dolibarr_syslog("CMailFile::sendfile addr_to=".$this->addr_to.", subject=".$this->subject); dolibarr_syslog("CMailFile::sendfile addr_to=".$this->addr_to.", subject=".$this->subject);
dolibarr_syslog("CMailFile::sendfile header=\n".$this->headers); dolibarr_syslog("CMailFile::sendfile header=\n".$this->headers);
//dolibarr_syslog("CMailFile::sendfile message=\n".$message); //dolibarr_syslog("CMailFile::sendfile message=\n".$message);
//$this->send_to_file(); //$this->send_to_file();
$errorlevel=error_reporting(); $errorlevel=error_reporting();
error_reporting($errorlevel ^ E_WARNING); // D<>sactive warnings error_reporting($errorlevel ^ E_WARNING); // D<>sactive warnings
$res=false; $res=false;
if (! $conf->global->MAIN_DISABLE_ALL_MAILS) if (! $conf->global->MAIN_DISABLE_ALL_MAILS)
{ {
if ($conf->global->MAIN_MAIL_SMTP_SERVER) ini_set('SMTP',$conf->global->MAIN_MAIL_SMTP_SERVER); if ($conf->global->MAIN_MAIL_SMTP_SERVER) ini_set('SMTP',$conf->global->MAIN_MAIL_SMTP_SERVER);
if ($conf->global->MAIN_MAIL_SMTP_PORT) ini_set('smtp_port',$conf->global->MAIN_MAIL_SMTP_PORT); if ($conf->global->MAIN_MAIL_SMTP_PORT) ini_set('smtp_port',$conf->global->MAIN_MAIL_SMTP_PORT);
if (!ini_get('sendmail_from') && $this->addr_from) ini_set('sendmail_from',getValidAddress($this->addr_from,2));
$dest=getValidAddress($this->addr_to,2); $dest=getValidAddress($this->addr_to,2);
if (! $dest) if (! $dest)
{ {
$this->error="Failed to send mail to SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port')."<br>Recipient address '$dest' invalid"; $this->error="Failed to send mail to SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port')."<br>Recipient address '$dest' invalid";
@@ -190,29 +191,30 @@ class CMailFile
else else
{ {
if ($this->errors_to) if ($this->errors_to)
{ {
// \TODO Tester que le safe_mode est inactif car fonction mail avec ces param non dispo en safe_mode // \TODO Tester que le safe_mode est inactif car fonction mail avec ces param non dispo en safe_mode
dolibarr_syslog("CMailFile::sendfile: mail start SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port').", with errorsto : ".getValidAddress($this->errors_to,1)); dolibarr_syslog("CMailFile::sendfile: mail start SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port').", with errorsto : ".getValidAddress($this->errors_to,1));
$res = mail($dest,$this->subject,stripslashes($this->message),$this->headers,"-f".getValidAddress($this->errors_to,2)); $res = mail($dest,$this->subject,stripslashes($this->message),$this->headers,"-f".getValidAddress($this->errors_to,2));
} }
else else
{ {
dolibarr_syslog("CMailFile::sendfile: mail start SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port')); dolibarr_syslog("CMailFile::sendfile: mail start SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port'));
//dolibarr_syslog("to=".getValidAddress($this->addr_to,2).", subject=".$this->subject.", message=".stripslashes($this->message).", header=".$this->headers); //dolibarr_syslog("to=".getValidAddress($this->addr_to,2).", subject=".$this->subject.", message=".stripslashes($this->message).", header=".$this->headers);
$res = mail($dest,$this->subject,stripslashes($this->message),$this->headers); $res = mail($dest,$this->subject,stripslashes($this->message),$this->headers);
} }
if (! $res) if (! $res)
{ {
$this->error="Failed to send mail to SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port')."<br>Check your server logs and your firewalls setup"; $this->error="Failed to send mail to SMTP=".ini_get('SMTP').", PORT=".ini_get('smtp_port')."<br>Check your server logs and your firewalls setup";
dolibarr_syslog("CMailFile::sendfile: mail end error=".$this->error); dolibarr_syslog("CMailFile::sendfile: mail end error=".$this->error);
} }
else else
{ {
dolibarr_syslog("CMailFile::sendfile: mail end success"); dolibarr_syslog("CMailFile::sendfile: mail end success");
} }
} }
if ($conf->global->MAIN_MAIL_SMTP_SERVER) ini_restore('SMTP'); if ($conf->global->MAIN_MAIL_SMTP_SERVER) ini_restore('SMTP');
if ($conf->global->MAIN_MAIL_SMTP_PORT) ini_restore('smtp_port'); if ($conf->global->MAIN_MAIL_SMTP_PORT) ini_restore('smtp_port');
ini_restore('sendmail_from');
} }
else else
{ {