Skip to content
Snippets Groups Projects
Commit 43a8543d authored by Andreas Gohr's avatar Andreas Gohr
Browse files

Merge pull request #461 from splitbrain/mail_headers

Fix sending empty and duplicated headers, FS#2887
parents 93327317 6be717db
No related branches found
No related tags found
No related merge requests found
......@@ -154,7 +154,19 @@ class mailer_test extends DokuWikiTest {
$headers['Cc'] = '';
$header = $mail->prepareHeaders();
$this->assertEquals(0, preg_match('/(^|\n)Bcc: (\n|$)/', $header), 'Bcc found in headers.');
$this->assertEquals(0, preg_match('/(^|\n)Cc: (\n|$)/', $header), 'Bcc found in headers.');
$this->assertEquals(0, preg_match('/(^|\n)Cc: (\n|$)/', $header), 'Cc found in headers.');
}
function test_nullTOorCCorBCC() {
$mail = new TestMailer();
$headers = &$mail->propRef('headers');
$headers['Bcc'] = NULL;
$headers['Cc'] = NULL;
$headers['To'] = NULL;
$header = $mail->prepareHeaders();
$this->assertEquals(0, preg_match('/(^|\n)Bcc: (\n|$)/', $header), 'Bcc found in headers.');
$this->assertEquals(0, preg_match('/(^|\n)Cc: (\n|$)/', $header), 'Cc found in headers.');
$this->assertEquals(0, preg_match('/(^|\n)To: (\n|$)/', $header), 'To found in headers.');
}
/**
......
......@@ -576,7 +576,7 @@ class Mailer {
protected function prepareHeaders() {
$headers = '';
foreach($this->headers as $key => $val) {
if ($val === '') continue;
if ($val === '' || is_null($val)) continue;
$headers .= $this->wrappedHeaderLine($key, $val);
}
return $headers;
......@@ -640,16 +640,16 @@ class Mailer {
) return false;
// The To: header is special
if(isset($this->headers['To'])) {
$to = $this->headers['To'];
if(array_key_exists('To', $this->headers)) {
$to = (string)$this->headers['To'];
unset($this->headers['To']);
} else {
$to = '';
}
// so is the subject
if(isset($this->headers['Subject'])) {
$subject = $this->headers['Subject'];
if(array_key_exists('Subject', $this->headers)) {
$subject = (string)$this->headers['Subject'];
unset($this->headers['Subject']);
} else {
$subject = '';
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment