Secure Exchanges SDK Documentation
Search Results for

    Show / Hide Table of Contents

    Envoyer votre premier message

    Ce guide vous montre comment envoyer un message securise avec le SDK.

    Concepts de base

    Un message Secure Exchanges comprend :

    • Destinataire(s) : Email et/ou telephone
    • Sujet : Titre du message
    • Corps : Contenu HTML ou texte
    • Options : Expiration, notifications, mot de passe

    Exemple rapide

    using SecureExchangesSDK.Helpers;
    using SecureExchangesSDK.Models.Args;
    using SecureExchangesSDK.Models.Entity;
    using SecureExchangesSDK.SecureExchanges;
    
    var recipients = new List<RecipientInfo>
    {
        new RecipientInfo { Email = "destinataire@example.com" }
    };
    
    Uri endpoint = new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx");
    
    var args = new MutliRecipientArgs(
        endpoint, serial, apiUser, apiPassword,
        recipients,
        "Contenu de mon message",
        "Mon sujet",
        password: null,
        filesList: null,
        SendMethodEnum.onlyEmail,
        false, true, true, "fr-CA", 5, 1440
    );
    
    var response = MessageHelper.MultiRecipientMessage(args);
    
    if (response.Status == 200)
    {
        Console.WriteLine($"URL: {response.RecipientsAnswer[0].Answer.URL}");
    }
    

    Exemple complet avec contexte

    Scenario : Envoi de mot de passe temporaire

    Une entreprise doit envoyer des mots de passe temporaires a ses clients de maniere securisee.

    using System;
    using System.Collections.Generic;
    using SecureExchangesSDK.Helpers;
    using SecureExchangesSDK.Models.Args;
    using SecureExchangesSDK.Models.Answer;
    using SecureExchangesSDK.Models.Entity;
    using SecureExchangesSDK.SecureExchanges;
    
    public class PasswordDeliveryService
    {
        private readonly Guid _serial;
        private readonly Guid _apiUser;
        private readonly Guid _apiPassword;
        private readonly Uri _endpoint;
    
        private static readonly Uri DefaultEndpoint = new Uri("https://www.secure-exchanges.com/_api/0217/0217.asmx");
    
        public PasswordDeliveryService(Guid serial, Guid apiUser, Guid apiPassword)
        {
            _serial = serial;
            _apiUser = apiUser;
            _apiPassword = apiPassword;
            _endpoint = DefaultEndpoint;
        }
    
        /// <summary>
        /// Envoie un mot de passe temporaire de maniere securisee
        /// </summary>
        public PasswordDeliveryResult SendTemporaryPassword(
            string clientEmail,
            string clientName,
            string temporaryPassword,
            int expirationHours = 24)
        {
            // Construction du message HTML
            string htmlBody = $@"
                <div style='font-family: Arial, sans-serif; max-width: 600px; margin: 0 auto;'>
                    <h2>Bonjour {clientName},</h2>
                    <p>Voici votre mot de passe temporaire :</p>
                    <div style='background-color: #f5f5f5; padding: 20px; border-radius: 5px; margin: 20px 0;'>
                        <code style='font-size: 18px; font-weight: bold;'>{temporaryPassword}</code>
                    </div>
                    <p><strong>Important :</strong></p>
                    <ul>
                        <li>Ce mot de passe expire dans {expirationHours} heures</li>
                        <li>Changez-le des votre premiere connexion</li>
                        <li>Ne partagez jamais ce mot de passe</li>
                    </ul>
                    <p>Cordialement,<br/>L'equipe Support</p>
                </div>";
    
            // Configuration des destinataires
            var recipients = new List<RecipientInfo>
            {
                new RecipientInfo { Email = clientEmail }
            };
    
            // Configuration des arguments
            var args = new MutliRecipientArgs(
                _endpoint,
                _serial,
                _apiUser,
                _apiPassword,
                recipients,
                htmlBody,
                subject: "Votre mot de passe temporaire",
                password: null,  // Pas de mot de passe supplementaire
                filesList: null,
                SendMethodEnum.onlyEmail,
                sendByMyOwnSMTPServer: false,
                showSubject: true,
                getNotify: true,  // Recevoir une notification a l'ouverture
                culture: "fr-CA",
                maxOpeningTime: 3,  // Maximum 3 ouvertures
                expirationMinutes: expirationHours * 60
            );
    
            // Envoi du message
            MultiRecipientAnswer response = MessageHelper.MultiRecipientMessage(args);
    
            // Traitement de la reponse
            if (response.Status == 200)
            {
                var answer = response.RecipientsAnswer[0].Answer;
                return new PasswordDeliveryResult
                {
                    Success = true,
                    MessageUrl = answer.URL,
                    OpeningCode = answer.DefaultOpeningCode,
                    TrackingId = ExtractTrackingId(answer.URL)
                };
            }
            else
            {
                return new PasswordDeliveryResult
                {
                    Success = false,
                    ErrorMessage = response.Data,
                    ErrorCode = response.Status
                };
            }
        }
    
        private string ExtractTrackingId(string url)
        {
            // Extraction du tracking ID depuis l'URL
            var uri = new Uri(url);
            var query = System.Web.HttpUtility.ParseQueryString(uri.Query);
            return query["Sess"];
        }
    }
    
    public class PasswordDeliveryResult
    {
        public bool Success { get; set; }
        public string MessageUrl { get; set; }
        public string OpeningCode { get; set; }
        public string TrackingId { get; set; }
        public string ErrorMessage { get; set; }
        public int ErrorCode { get; set; }
    }
    
    // Utilisation
    class Program
    {
        static void Main()
        {
            var service = new PasswordDeliveryService(serial, apiUser, apiPassword);
    
            var result = service.SendTemporaryPassword(
                clientEmail: "client@example.com",
                clientName: "Jean Dupont",
                temporaryPassword: "TempPass123!",
                expirationHours: 24
            );
    
            if (result.Success)
            {
                Console.WriteLine($"Mot de passe envoye!");
                Console.WriteLine($"URL: {result.MessageUrl}");
                Console.WriteLine($"Tracking: {result.TrackingId}");
            }
            else
            {
                Console.WriteLine($"Erreur {result.ErrorCode}: {result.ErrorMessage}");
            }
        }
    }
    

    Methodes d'envoi disponibles

    Methode Description
    onlyEmail Envoi par email uniquement
    onlySMS Envoi par SMS uniquement
    msgEmailCodeSMS Message par email, code par SMS
    msgSMSCodeEmail Message par SMS, code par email

    Exemple avec double authentification (Email + SMS)

    // Le destinataire doit avoir un email ET un telephone
    var recipients = new List<RecipientInfo>
    {
        new RecipientInfo
        {
            Email = "client@example.com",
            Phone = "+1234567890"  // Format international
        }
    };
    
    var args = new MutliRecipientArgs(
        endpoint, serial, apiUser, apiPassword,
        recipients,
        "Message confidentiel",
        "Sujet",
        password: null,
        filesList: null,
        SendMethodEnum.msgEmailCodeSMS,  // Message par email, code par SMS
        false, true, true, "fr-CA", 5, 1440
    );
    

    Options de configuration

    Protection par mot de passe

    var args = new MutliRecipientArgs(
        // ... autres parametres ...
        password: "MotDePasseSecret123"  // Le destinataire devra entrer ce mot de passe
    );
    

    Notification a l'ouverture

    var args = new MutliRecipientArgs(
        // ... autres parametres ...
        getNotify: true  // Vous recevrez un email quand le message sera ouvert
    );
    

    Expiration et limite d'ouvertures

    var args = new MutliRecipientArgs(
        // ... autres parametres ...
        maxOpeningTime: 5,        // Maximum 5 ouvertures
        expirationMinutes: 43200  // 30 jours maximum
    );
    

    Gestion des erreurs

    var response = MessageHelper.MultiRecipientMessage(args);
    
    switch (response.Status)
    {
        case 200:
            Console.WriteLine("Succes!");
            break;
        case 400:
            Console.WriteLine($"Parametres invalides: {response.Data}");
            break;
        case 401:
            Console.WriteLine("Identifiants API invalides");
            break;
        case 403:
            Console.WriteLine("Licence invalide ou expiree");
            break;
        default:
            Console.WriteLine($"Erreur {response.Status}: {response.Data}");
            break;
    }
    

    Voir aussi

    • Messages avec fichiers
    • Multi-destinataires
    • Recuperation de messages
    In this article
    Back to top Secure Exchanges Inc. - Documentation