Class MessageHelper
This class is use to send and retreived message from Secure Exchanges
Inheritance
Inherited Members
Namespace: SecureExchangesSDK.Helpers
Assembly: SecureExchangesSDK.dll
Syntax
public static class MessageHelper
  Methods
DeleteMessageByTrackingId(DeleteMessageByTrackingIdArgs)
Delete message by tracking id, tracking id came from log
Declaration
public static bool DeleteMessageByTrackingId(DeleteMessageByTrackingIdArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| DeleteMessageByTrackingIdArgs | args | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
EncryptMessage(EncryptMessageArgs)
Encrypt a single message. Must use MultiRecipientMessage to send the same message to one or more recipient
Declaration
[Obsolete("Please use the MultiRecipientMessage")]
public static SendMessageAnswer EncryptMessage(EncryptMessageArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| EncryptMessageArgs | args | 
Returns
| Type | Description | 
|---|---|
| SendMessageAnswer | 
EncryptMessage(Guid, Guid, Guid, String, String, String, String, String, List<FileArgs>, SendMethodEnum, Boolean, Boolean, Boolean, String)
Méthode pour envoyé un message. Tous les paramètre seront encrypter par un Handshake et un échange de clef avec le serveur
Declaration
[Obsolete("Please use the MultiRecipientMessage")]
public static SendMessageAnswer EncryptMessage(Guid serial, Guid apiUser, Guid apiPassword, string message, string subject, string email, string phone, string password, List<FileArgs> filesList, SendMethodEnum SendMode, bool getBackHtml, bool showSubject, bool getNotify, string cultureID)
  Parameters
| Type | Name | Description | 
|---|---|---|
| System.Guid | serial | Représente le no de série  | 
      
| System.Guid | apiUser | Représente le "USER" API  | 
      
| System.Guid | apiPassword | Représente le "PASSWORD" API  | 
      
| System.String | message | Le message en clair qui doit être envoyé  | 
      
| System.String | subject | Le sujet en clair qui doit être envoyé  | 
      
| System.String | Le email en clair qui doit être envoyé  | 
      |
| System.String | phone | Le téléphone avec qui communiqué un code SMS ou envoyé un message  | 
      
| System.String | password | Le mot de passe en clair pour ouvrir le message  | 
      
| System.Collections.Generic.List<FileArgs> | filesList | Liste des fichiers devant être envoyé - null aucun fichier  | 
      
| SendMethodEnum | SendMode | La méthode d'envoi  | 
      
| System.Boolean | getBackHtml | Voulons nous récupéré le HTML du message envoyé  | 
      
| System.Boolean | showSubject | Voulons nous afficher le sujet  | 
      
| System.Boolean | getNotify | Est-ce que l'expéditeur veux être notifier de l'ouverture du message  | 
      
| System.String | cultureID | La culture du message  | 
      
Returns
| Type | Description | 
|---|---|
| SendMessageAnswer | 
ExtenMessageLive(ExtenMessageLiveArgs)
Declaration
public static bool ExtenMessageLive(ExtenMessageLiveArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| ExtenMessageLiveArgs | args | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
GetEnvelopes(GetEnvelopesArgs)
Return multiple envelopes. One per recipient
Declaration
public static GetEnvelopesResponse GetEnvelopes(GetEnvelopesArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| GetEnvelopesArgs | args | In the args.Recipient if the phone number is used, then you activate automaticly the Two Factor Authentication  | 
      
Returns
| Type | Description | 
|---|---|
| GetEnvelopesResponse | Return a list of envelopes, one per recipient. When use the phone in the recipient, the 2FA is activated  | 
      
GetEnveloppe(GetEnveloppeArgs)
Create a link to send to a recipient. This link will allow the recipient to send your back some information. If the reply API is activated on your licence, when the user will reply, you will be notify by our system. Your callbackparameter will be encrypted AES 256, and only your service endpoint will able to retreived it. This callbackparameters are usefull to let know your service, wich client, folder or anything usefull for your system to know about the callback request If you pass "false" to ReplyToAPI, the answer will came back by email to the licence email address
Declaration
public static GetEnveloppeResponse GetEnveloppe(GetEnveloppeArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| GetEnveloppeArgs | args | GetEnveloppeArgs  | 
      
Returns
| Type | Description | 
|---|---|
| GetEnveloppeResponse | GetEnveloppeResponse  | 
      
Examples
 GetEnveloppeResponse response = MessageHelper.GetEnveloppe(
 new GetEnveloppeArgs(new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx"),
       [your serial],
       [your apiuser],
       [your apipsw], "Subject", "Recipient email addresse", "fr-CA")
  {
    ReplyToAPI = true,
    CallBackParameters = "[Place your object here. XML, JSON]"
  });
  
  
  
  GetMessage(GetMessageArgs)
This method is used to decrypt a message from Secure Exchanges
Declaration
public static GetMessageResponse GetMessage(GetMessageArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| GetMessageArgs | args | GetMessageArgs  | 
      
Returns
| Type | Description | 
|---|---|
| GetMessageResponse | GetMessageResponse  | 
      
Examples
 SecureExchangesMessage msg = MessageHelper.GetSecureExchangesMessageFromLink(link);
 var password = "[The password use to protect the mesasge]";
 var digit = "[The SMS digit code received]";
GetMessageResponse response =  MessageHelper.GetMessage(new GetMessageArgs(
new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx"),
       [your serial],
       [your apiuser],
       [your apipsw],
       msg.MessageID, 
       msg.Cpart, 
       msg.Sems, 
       msg.NIv,
       msg.P2, 
       password, 
       digit));
  
  
  
  GetSecureExchangesMessageFromLink(String)
This method is create to parse a link from Secure Exchanges
Declaration
public static SecureExchangesMessage GetSecureExchangesMessageFromLink(string link)
  Parameters
| Type | Name | Description | 
|---|---|---|
| System.String | link | Secure Exchanges read message link  | 
      
Returns
| Type | Description | 
|---|---|
| SecureExchangesMessage | Secure Exchanges Message  | 
      
Examples
// Use to extract parameters from Secure Exchanges Link
var link = "https://www.secure-exchanges.com/mon-message-secure-exchanges.aspx?msgid=bXrEeahH6pTi9JoSZ92Bo3kZ1gQd6EueXK0db0qdMKCi6tMEmOiAL87fElNqiuaJmEg%2fR%2b5Hka2TmUQfEjtmpu2TQrpTSafHWJ%2bVbUEmw59YyofHzOwMatlrJgmCm3KHcTv1abfyZqBE9xJOrXPiNUclA2uEDdBaoEU%2fC1uT42g%3d&sems=de0e1511-bf38-41d9-b4c1-21748d2fdf0a&cpart=o5vUPaRoXo4ETlyIzKgFcCUCEiS1lZMOAkNC9lUig4dE6joJ1bsKSqIpWRg6I2EeQAyvVTS6kVbJk%2FEE7Is07rfsQI%2FbS6TPEYZtR6rpaEDoD%2ByWzcSRQX7kA810sYf1SaOnf3xNMZHuuu33TQSPt1%2FOkCH8raH8NdhVxDflHRE%3D&psw=0&digit=False&nIV=3d3a051c-ea8e-a24a-619b-077ebd6a6529&p2=095847b7-95e1-4e7b-a647-fe432aa687a2";
SecureExchangesMessage msg = MessageHelper.GetSecureExchangesMessageFromLink(link);    /// 
  
  
  
  GetSerialInfo(GetSerialInfoArgs)
Declaration
[Obsolete("Please use the method in the LicenceHelper")]
public static GetSerialInfoResponse GetSerialInfo(GetSerialInfoArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| GetSerialInfoArgs | args | 
Returns
| Type | Description | 
|---|---|
| GetSerialInfoResponse | 
InitializeSMS(ISEMSInitialization)
This method only initialize SEMS Keys to send the SMS when a message contains a digit
Declaration
public static GetKeysAnswer InitializeSMS(ISEMSInitialization args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| ISEMSInitialization | args | 
Returns
| Type | Description | 
|---|---|
| GetKeysAnswer | 
MultiRecipientMessage(MutliRecipientArgs)
Use to send the same message to multiple recipident. Each recipient will received a unique link. They will received a unique SMS code if use it, and will share the same password.
Declaration
public static MultiRecipientAnswer MultiRecipientMessage(MutliRecipientArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| MutliRecipientArgs | args | 
Returns
| Type | Description | 
|---|---|
| MultiRecipientAnswer | Return an answer to manage the message send  | 
      
Examples
 
Create a files list path : physical path
   List<string> files = new List<string>();
     if (!string.IsNullOrEmpty(originalFilePath))
     {
       files.Add(originalFilePath);
     }
 // Use fileArgs if you have file in memory or binary witout the path
 List<FileArgs> filesArgs = null;
 string HTMLBody = $"{body}";
 string EmailSubject = $"{methodName} - {subject}";
 // Create a list of recipient. Phone number could be filled to received SMS
 // WARNING : the SendMethodEnum must be set to msgEmailCodeSms to received an email with a sms code to open it
 List<RecipientInfo> recipients = new List<RecipientInfo>();
 recipients.Add(new RecipientInfo() { Email = recipient1});
     recipients.Add(new RecipientInfo() { Email = recipient2, Phone = null });
     //Create the message args
     var args = new MutliRecipientArgs(
        new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx"),
       [your serial],
       [your apiuser],
       [your apipsw],
        recipients,
        HTMLBody,
        EmailSubject,
        psw,
        filesArgs,
        SecureExchangesSDK.SecureExchanges.SendMethodEnum.onlyEmail,
        getBackHtml,
        true,
        true, "fr-CA", 1, 5)
     { FilesPath = files };
 // Call the multicecipient method 
 MultiRecipientAnswer answer = MessageHelper.MultiRecipientMessage(args);
     // if the status is set to 200 the call was made successfully. See in answer.Data if the status is not 200
     if (answer.Status == 200)
     {
       foreach (var a in answer.RecipientsAnswer)
       {
         // Here use a.Answer.HtmlMsg to send your email with your SMTP server
       }
     }
  
  
  
  MultiRecipientMessage(MutliRecipientArgs, FileHelper)
Use to send the same message to multiple recipident. Each recipient will received a unique link. They will received a unique SMS code if use it, and will share the same password.
Declaration
public static MultiRecipientAnswer MultiRecipientMessage(MutliRecipientArgs args, FileHelper fileHelper)
  Parameters
| Type | Name | Description | 
|---|---|---|
| MutliRecipientArgs | args | |
| FileHelper | fileHelper | 
Returns
| Type | Description | 
|---|---|
| MultiRecipientAnswer | Return an answer to manage the message send  | 
      
Examples
 
Create a files list path : physical path
   List<string> files = new List<string>();
     if (!string.IsNullOrEmpty(originalFilePath))
     {
       files.Add(originalFilePath);
     }
 // Use fileArgs if you have file in memory or binary witout the path
 List<FileArgs> filesArgs = null;
 string HTMLBody = $"{body}";
 string EmailSubject = $"{methodName} - {subject}";
 // Create a list of recipient. Phone number could be filled to received SMS
 // WARNING : the SendMethodEnum must be set to msgEmailCodeSms to received an email with a sms code to open it
 List<RecipientInfo> recipients = new List<RecipientInfo>();
 recipients.Add(new RecipientInfo() { Email = recipient1});
     recipients.Add(new RecipientInfo() { Email = recipient2, Phone = null });
     //Create the message args
     var args = new MutliRecipientArgs(
        new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx"),
       [your serial],
       [your apiuser],
       [your apipsw],
        recipients,
        HTMLBody,
        EmailSubject,
        psw,
        filesArgs,
        SecureExchangesSDK.SecureExchanges.SendMethodEnum.onlyEmail,
        getBackHtml,
        true,
        true, "fr-CA", 1, 5)
     { FilesPath = files };
 // Call the multicecipient method 
 MultiRecipientAnswer answer = MessageHelper.MultiRecipientMessage(args);
     // if the status is set to 200 the call was made successfully. See in answer.Data if the status is not 200
     if (answer.Status == 200)
     {
       foreach (var a in answer.RecipientsAnswer)
       {
         // Here use a.Answer.HtmlMsg to send your email with your SMTP server
       }
     }
  
  
  
  SendTrace(SendTraceArgs)
To send support trace to SEcure Exchanges Team
Declaration
public static bool SendTrace(SendTraceArgs args)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SendTraceArgs | args | 
Returns
| Type | Description | 
|---|---|
| System.Boolean | 
TransformSECryptedMail(SEMail, String, String, Byte[], Byte[], Byte[])
Transform a SEMail encrypted to a SEMail unencrypted
Declaration
public static SEMail TransformSECryptedMail(SEMail mail, string password, string SEMSPCKS, byte[] cpart, byte[] ComKey, byte[] ComIV)
  Parameters
| Type | Name | Description | 
|---|---|---|
| SEMail | SEMail encrypted  | 
      |
| System.String | password | The password of the message  | 
      
| System.String | SEMSPCKS | The public xml public key of the SEMS  | 
      
| System.Byte[] | cpart | The cpart of the message  | 
      
| System.Byte[] | ComKey | The communication key  | 
      
| System.Byte[] | ComIV | The communication iv  | 
      
Returns
| Type | Description | 
|---|---|
| SEMail |