Let's try to fix the non-SMTP version. In include/mailer.inc.php you'll find
function MailSend($header, $body) {
$to = '';
for($i = 0; $i < count($this->to); $i++) {
if($i != 0) { $to .= ', '; }
$to .= $this->AddrFormat($this->to[$i]);
}
$toArr = split(',', $to);
if ($this->Sender != '' && strtolower(ini_get('safe_mode')) != 'on' && ini_get('safe_mode') != 1) {
$old_from = ini_get('sendmail_from');
ini_set('sendmail_from', $this->Sender);
$params = sprintf("-oi -f %s", $this->Sender);
if ($this->SingleTo === true && count($toArr) > 1) {
foreach ($toArr as $key => $val) {
$rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
}
} else {
$rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params);
}
ini_set('sendmail_from', $old_from);
} else {
if ($this->SingleTo === true && count($toArr) > 1) {
foreach ($toArr as $key => $val) {
$rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header);
}
} else {
$rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header);
}
}
if(!$rt) {
$this->SetError($this->Lang('instantiate'));
return false;
}
return true;
}
which is used if no SMTP data is set. If I remember correctly we already had a similar issue, unfortunately I wasn't able to find that thread. However, I assume that some parameter breaks Coppermine's mail function (i.e. the mail server doesn't like them), but it should be possible to fix it.
First of all I'd try if it works if you remove $params at all occurrences and if that doesn't work additionally remove $header. Please report the result.