He intentado lograr esto a través de una llamada MailMessage.Headers.Set, en VB.net. Ver más abajo:¿Cómo puedo enviar un correo electrónico con una fecha pasada de .NET?
Dim objMail As MailMessage
Dim objSMTPClient As SmtpClient
objMail = New MailMessage()
objSMTPClient = New SmtpClient()
objMail.From = New MailAddress(MY_EMAIL_ADDRESS)
objMail.To.Add(New MailAddress(TEST_EMAIL_ADDRESS))
objMail.Headers.Set("Date", "09 Jan 1999 17:23:42 -0400")'date in the past'
objMail.Subject = "The Subject"
objMail.Body = "The Body"
objSMTPClient.Port = 25
objSMTPClient.Host = HOST_IP
objSMTPClient.Credentials = New System.Net.NetworkCredential(MY_EMAIL_ADDRESS, txtPassword.Text)
objSMTPClient.Send(objMail)
me confirmó que la llamada objMail.Headers.Set está trabajando realmente - si me da el valor más tarde, se ha cambiado correctamente. Mi problema es que cuando recibo el correo electrónico en Outlook de TEST_EMAIL_ADDRESS, la fecha es 2009 en todas partes, no en 1999. Allí mismo, en la interfaz de Outlook, y también en el encabezado, al que accedo mediante el elemento "Opciones" en el contexto menú para ese correo electrónico.
¿Qué estoy haciendo mal? Tengo la sensación de que me perdí algo obvio ...
Para ser claro: Estoy no haciendo esto con intención maliciosa. Estoy trabajando en un componente de integración de correo electrónico que utiliza tanto UID como una fecha de "Último procesamiento" para ubicar el primer correo electrónico nuevo que se integrará. Quiero probar casos en los que varios correos electrónicos tienen exactamente la misma fecha/hora, ya que el módulo de integración de correo electrónico debe manejar esas situaciones de manera impecable. Si pudiera simplemente falsificar la fecha de esta manera, podría enviar tantos correos electrónicos como quisiera que coincidan con una fecha/hora determinada, en lugar de tratar de enviarlos con un script automático, con la esperanza de que todos sean recibidos en el mismo segundo . Parece que necesitaré tomar otro enfoque, sin embargo.
Probablemente sea anulado por los servidores en cuestión, que registra el momento en que reciben el mensaje, en lugar de cuando el mensaje dice que fue enviado . –
Creo que olfatear la red ayudaría. O al menos registro adicional en su servidor SMTP –
@Lasse V. Karlsen Como dijo David Stratton, debe agregar ese comentario como respuesta. Que tiene sentido. Tendré que pensar en un mejor enfoque. –