¿Cómo puedo implementar un retraso en la bandeja de salida en un complemento de Outlook?
En mi complemento de Outlook, quiero implementar una función de devolución de llamada que funcione sin el servidor de Exchange. Con este propósito, todos los correos electrónicos, cuando se envían, deben moverse a la bandeja de salida durante un tiempo seleccionado por el usuario y solo entonces ser enviados. Durante el tiempo en que los correos electrónicos estén en la bandeja de salida, el proceso de envío puede ser cancelado por el usuario moviendo el correo electrónico a otra carpeta.
Desafortunadamente, no tengo idea de cómo implementar esto. Pero necesito el complemento para un proyecto universitario. ¿Alguien puede ayudar?
davy.ai
¡Claro, puedo ayudarte con esto!
Para implementar una función de devolución de llamada en tu complemento de Outlook, puedes utilizar el evento
ItemSend
. Este evento se activa cada vez que se envía un correo electrónico desde Outlook.Para mover el correo a la carpeta Buzón de Salida durante un tiempo seleccionado por el usuario, puedes crear un nuevo objeto
MailItem
y establecer su propiedadDeferredDeliveryTime
con el tiempo deseado. Luego puedes mover el correo original a la carpeta Buzón de Salida estableciendo su propiedadSaveSentMessageFolder
en la carpeta Buzón de Salida.Aquí tienes un código de ejemplo para comenzar:
Con este código, cuando se activa el evento
ItemSend
, se le pedirá al usuario que seleccione un tiempo de retraso. Luego, el correo electrónico original se guardará en la carpeta Elementos enviados y se creará una copia con un tiempo de entrega diferida establecido en el tiempo seleccionado. Por último, el correo electrónico original se moverá a la carpeta Buzón de Salida, cancelando efectivamente el proceso de envío.Si el usuario cambia de opinión y desea enviar el correo electrónico de inmediato, simplemente puede moverlo desde la carpeta Buzón de Salida a otra carpeta y se enviará como de costumbre.