2013-09-02 3 views
1

У меня есть два вопроса о том, что функция php mail() не указала дату? Всякий раз, когда я открываю свою почтовую почту (mail.com), все письма, отправленные мне, используя почту php() (я тестирую систему, которую я разрабатываю), всегда получают сегодня, иногда позже сегодня = в будущем.Электронная почта, отправленная PHP, не имеет даты

Кроме того, при открытии писем в Thunderbird он отображается как html-mail, но при открытии их в веб-почте или на моей Galaxy S3 нет разметки, только простой текст и «-» в первой строке?

Мои заголовки:

$headers = "From: ***.dk <[email protected]***.dk> \n"; 
$headers .= "Reply-To: [email protected]***.dk \n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=utf-8\r\n"; 

и HTML в начале и в конце являются:

const init = <<<'END_OF_STRING' 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <html> 
    <head> 
    <link rel="stylesheet" type="text/css" href="http://***.dk/development/stylesheets/basic.css" /> 
    <link rel="stylesheet" type="text/css" href="http://***.dk/development/stylesheets/front.css" /> 
    </head> 
    <body> 
    <div id="pageWrap"> 
    <a href="http://***.dk/development/?page=home"><div id="header">&nbsp;</div></a> 
    <div id="descriptionText"> 
END_OF_STRING; 

const theend = <<<'END_OF_STRING' 
    <!--descriptionText--></div> 
    <!--pageWrap--></div> 
    </body> 
END_OF_STRING; 

Заранее спасибо!: D

+0

Я проверил почту PHP, у нее есть дата. Я подозреваю, что он добавлен локальным программным обеспечением почтового сервера, а не PHP. – Barmar

+0

Где вы укажете дату в коде? – Loko

+0

вы можете, но вам не нужно добавлять заголовок даты '' Date: ".date (" r ")." \ R \ n "" в противном случае используется сервер dae, Dont mess with the date, it использовать, чтобы быть трюком для спамеров, так что вы можете быстро получить черный список –

ответ

2

Изменить первые две строки:

$headers = "From: ***.dk <[email protected]***.dk> \r\n"; 
$headers .= "Reply-To: [email protected]***.dk \r\n"; 

Вы оставили \r.

Что касается проблемы с электронной почтой HTML, вам необходимо ее упростить. Многие почтовые программы игнорируют разделы, такие как <head> и ссылки CSS. Если вы разместите «html email css» Google, вы найдете информацию о том, как создавать электронные письма HTML, которые будут последовательно отображаться в различных системах.

+0

Я сделал это, пытаясь заставить html работать, изначально они были там. Это не ошибка .. –

+0

Ваша заметка о отлично, теперь мне просто нужно выяснить, как поставить одно изображение за другим, не используя css background :) –

1

Не можете ли вы просто поставить дату в конце письма с помощью: echo date(DATE_RFC822);? Некоторые люди действительно это делают.

+0

не так, вам нужно установить заголовок –

+0

@Dagon ow sorry моя вина. Не совсем понял вопрос. – Loko

Смежные вопросы