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()
{
global $conf;
global $conf;
dolibarr_syslog("CMailFile::sendfile addr_to=".$this->addr_to.", subject=".$this->subject);
dolibarr_syslog("CMailFile::sendfile header=\n".$this->headers);
//dolibarr_syslog("CMailFile::sendfile message=\n".$message);
//$this->send_to_file();
dolibarr_syslog("CMailFile::sendfile addr_to=".$this->addr_to.", subject=".$this->subject);
dolibarr_syslog("CMailFile::sendfile header=\n".$this->headers);
//dolibarr_syslog("CMailFile::sendfile message=\n".$message);
//$this->send_to_file();
$errorlevel=error_reporting();
error_reporting($errorlevel ^ E_WARNING); // D<>sactive warnings
$errorlevel=error_reporting();
error_reporting($errorlevel ^ E_WARNING); // D<>sactive warnings
$res=false;
$res=false;
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_PORT) ini_set('smtp_port',$conf->global->MAIN_MAIL_SMTP_PORT);
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_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)
{
$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
{
if ($this->errors_to)
{
{
// \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));
}
else
{
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);
}
else
{
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);
$res = mail($dest,$this->subject,stripslashes($this->message),$this->headers);
}
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";
dolibarr_syslog("CMailFile::sendfile: mail end error=".$this->error);
}
else
{
dolibarr_syslog("CMailFile::sendfile: mail end success");
}
}
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";
dolibarr_syslog("CMailFile::sendfile: mail end error=".$this->error);
}
else
{
dolibarr_syslog("CMailFile::sendfile: mail end success");
}
}
if ($conf->global->MAIN_MAIL_SMTP_SERVER) ini_restore('SMTP');
if ($conf->global->MAIN_MAIL_SMTP_PORT) ini_restore('smtp_port');
ini_restore('sendmail_from');
}
else
{