- Use host FQDN in Message-Id, if possible (#1486924)

release-0.6
alecpl 14 years ago
parent 01538da580
commit 1d8cbca272

@ -1544,7 +1544,7 @@ function rcmail_send_mdn($uid, &$smtp_error)
'From' => $sender, 'From' => $sender,
'To' => $message->headers->mdn_to, 'To' => $message->headers->mdn_to,
'Subject' => rcube_label('receiptread') . ': ' . $message->subject, 'Subject' => rcube_label('receiptread') . ': ' . $message->subject,
'Message-ID' => sprintf('<%s@%s>', md5(uniqid('rcmail'.mt_rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host'])), 'Message-ID' => rcmail_gen_message_id(),
'X-Sender' => $identity['email'], 'X-Sender' => $identity['email'],
'References' => trim($message->headers->references . ' ' . $message->headers->messageID), 'References' => trim($message->headers->references . ' ' . $message->headers->messageID),
); );
@ -1585,6 +1585,29 @@ function rcmail_send_mdn($uid, &$smtp_error)
return false; return false;
} }
// Returns unique Message-ID
function rcmail_gen_message_id()
{
global $RCMAIL;
$local_part = md5(uniqid('rcmail'.mt_rand(),true));
$domain_part = $RCMAIL->user->get_username('domain');
// Try to find FQDN, some spamfilters doesn't like 'localhost' (#1486924)
if (!preg_match('/\.[a-z]+$/i', $domain_part)) {
if (($host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']))
&& preg_match('/\.[a-z]+$/i', $host)) {
$domain_part = $host;
}
else if (($host = preg_replace('/:[0-9]+$/', '', $_SERVER['SERVER_NAME']))
&& preg_match('/\.[a-z]+$/i', $host)) {
$domain_part = $host;
}
}
return sprintf('<%s@%s>', $local_part, $domain_part);
}
// Returns RFC2822 formatted current date in user's timezone // Returns RFC2822 formatted current date in user's timezone
function rcmail_user_date() function rcmail_user_date()
{ {

@ -205,7 +205,7 @@ function rcmail_email_input_format($mailto, $count=false)
if (strlen($_POST['_draft_saveid']) > 3) if (strlen($_POST['_draft_saveid']) > 3)
$olddraftmessageid = get_input_value('_draft_saveid', RCUBE_INPUT_POST); $olddraftmessageid = get_input_value('_draft_saveid', RCUBE_INPUT_POST);
$message_id = sprintf('<%s@%s>', md5(uniqid('rcmail'.mt_rand(),true)), $RCMAIL->config->mail_domain($_SESSION['imap_host'])); $message_id = rcmail_gen_message_id();
// set default charset // set default charset
$input_charset = $OUTPUT->get_charset(); $input_charset = $OUTPUT->get_charset();

Loading…
Cancel
Save