Я пишу веб-клиент электронной почты на Python, и возник вопрос о том, в каком часовом поясе должен отображаться заголовок «Дата» электронного письма при отправке.Должен ли почтовый заголовок «Дата» быть местным отправителем или UTC?
RFC 2822 состояния в разделе 3.3, что:
Дата и время-день следует выразить по местному времени.
Это кажется двусмысленным для меня; вопрос - местное время, кто? Сервер электронной почты или отправитель? Естественно, я предполагаю отправителя (который может находиться в любом часовом поясе и может быть изменен в настройках учетной записи). Дальнейшее замешательство возникло, когда я просмотрел функцию email.utils.formatdate Python, которая, кажется, предлагает только две альтернативы: UTC или местное время (на сервере). Мне кажется, что нет возможности указать альтернативный часовой пояс, или я что-то упускаю?
Передача timeval для форматирования с использованием time.mktime(senders_tz_aware_now_datetime.timetuple())
приводит к дате строки UTC, которая чувствует себя неправильно, учитывая то, что RFC говорит выше.
Итак, какой часовой пояс должен быть «Дата», и существует ли какая-либо стандартная функция для создания соответствующей строки даты?
Это не будет сделано, я конвертирую объект datetime, содержащий информацию о часовом поясе, используя метод timetuple, который означает, что is_dst уже установлен. Также он не отвечает на мой вопрос о том, что такое правильное представление даты. – kuhnza
Изменил мой разум, проделайте легкий путь, и вы успеете выпить пиво вечером. – sorin
Ха-ха Мне нравится ваш стиль. Тем не менее, я хотел бы получить некоторую идею о том, как это обычно обрабатывается, поскольку я предполагаю, что это имеет последствия для целого ряда почтовых клиентов, о которых я никогда не слышал, не говоря уже о том, чтобы иметь время или ресурсы для тестирования. – kuhnza