Microsoft Exchange – EWS: Ecrire un nouvel email avec toutes les options

Après avoir vu comment récupérer les emails, voyons comment créer un nouvel email et l’envoyer à un compte email Exchange.

Création d’un nouveau message et envoi

string sDestinataire = m_edDestinataire.Text;
 
/* Création d'email et envoi */
 
EmailMessage message = new EmailMessage(m_service);
 
message.Subject = m_edSubject.Text;
 
message.Body = m_rtbBody.Text;
 
message.Body.BodyType = BodyType.HTML;
 
message.Importance = Importance.Normal;
 
//Ajout d’une propriété personnalisée appelé “MaProprietePerso” avec pour valeur //« Mavaleur »
 
string sPropertyName = “MaProprietePerso”;
 
ExtendedPropertyDefinition extendedPropertyDefinition =
 
new ExtendedPropertyDefinition(DefaultExtendedPropertySet.PublicStrings, sPropertyName, MapiPropertyType.String);
 
message.SetExtendedProperty(extendedPropertyDefinition, “MaValeur”);
 
//Avec ou sans pièces jointes:
 
if (sFilename != string.Empty)
 
message.Attachments.AddFileAttachment(sFilename);
 
//Destinataire :
 
message.ToRecipients.Add(sDestinataire);
 
//Accusé de reception :
 
if (m_ckDelivery.Checked)
 
message.IsDeliveryReceiptRequested = true;
 
//Sauvegarde et envoi de l’email :
 
message.SendAndSaveCopy();

Ce code vous permet de créer un nouveau message et de spécifier : son titre(sujet), le corps du message, son importance, des propriétés personnalisées, des pièces jointes, des destinataires et un accusé de réception.

Envoi différé

Un point rarement mentionné porte sur l’envoi différé, pour utiliser cette fonctionnalité, ajouter la classe suivante :

public static class ExchangeExtensions
 
{
 
public static ExtendedPropertyDefinition PR_DEFERRED_SEND_TIME = new ExtendedPropertyDefinition(16367, MapiPropertyType.SystemTime);
 
public static ExtendedPropertyDefinition PR_DEFERRED_DELIVERY_TIME = new ExtendedPropertyDefinition(15, MapiPropertyType.SystemTime);
 
/// 
 
/// Sets Delayed Delivery
 
///
 
///
<span> </span>
 
///
<span> </span>Do Not Send Before This Date and Time
 
public static void SetDelayedDelivery(Microsoft.Exchange.WebServices.Data.EmailMessage email, DateTime deliveryDate)
 
{
 
string ut = deliveryDate.ToUniversalTime().ToString();
 
email.SetExtendedProperty(PR_DEFERRED_SEND_TIME, ut);
 
email.SetExtendedProperty(PR_DEFERRED_DELIVERY_TIME, ut);
 
}
 
}

Et sur le message, avant de l’envoyer :

ExchangeExtensions.SetDelayedDelivery(message, dateTimePicker1.Value);
 
//Sauvegarde et envoi de l’email :
 
message.SendAndSaveCopy();

Vous savez désormais récupérer les messages stockées sur le serveur Exchange et écrire de nouveaux emails en spécifiant de nombreuses options différentes.

2 Replies to “Microsoft Exchange – EWS: Ecrire un nouvel email avec toutes les options”

  1. s’il vous plait passez moi le lien pour voir comment on peut recupere les mails , s’il vouuuus plait j’en ai vraiment besoin

Leave a Reply

Your email address will not be published. Required fields are marked *