Я думаю, что основное различие - то, что с затенением, Вы по существу снова используете имя, и просто игнорируете использование суперкласса. С переопределением Вы изменяете реализацию, но не доступность и подпись (например, типы параметра и возврат). См. http://www.geekinterview.com/question_details/19331 .
Добавляя к примечанию @Lasse В. Карлсена, я думаю, что, скорее всего, сервер SMTP переопределяет то, что вы помещаете в сообщение в коде. Честно говоря, зачем вам вообще нужно делать так, чтобы письмо выглядело так, как будто оно было отправлено в прошлом? Я не могу придумать ни одной причины, которая не была бы нечестной по крайней мере или в худшем случае злонамеренной.
Таким образом, для меня было бы разумно, чтобы сервер перезаписал этот заголовок, если бы он выглядел подозрительно. Я не знаю, что происходит на самом деле, но готов поспорить, что @Lasse V. Karlsen прав.
Если так, Возможное решение - изменить дату на SMTP-сервере на некоторую дату в прошлом (если вы управляете сервером и можете это сделать).
Тем не менее, мне интересно, зачем вам вообще это нужно. Не могли бы вы уточнить?
Добавлен
@Lasse V. Karlsen - Я думаю, вам следует опубликовать свою заметку в качестве ответа, чтобы получить за нее должное.