Fermer

août 26, 2024

setToAddresses() / Blogs / Perficient

setToAddresses() / Blogs / Perficient


L’envoi d’e-mails par programmation est une fonctionnalité puissante de Salesforce, en particulier lorsque vous souhaitez automatiser les notifications ou les alertes. Si vous avez travaillé avec Apex, vous avez peut-être rencontré différentes méthodes pour envoyer des e-mails. L’une des méthodes les plus polyvalentes et les plus couramment utilisées est setToAddresses(). Dans ce blog, nous verrons ce qu’il fait, pourquoi vous pourriez le choisir plutôt que d’autres options et comment l’implémenter dans vos projets Salesforce.

Qu’est-ce que setToAddresses() ?

setToAddresses() est une méthode fournie par la classe Messaging.SingleEmailMessage dans Apex. Cette méthode vous permet de spécifier une ou plusieurs adresses e-mail auxquelles vous souhaitez que l’e-mail soit envoyé. Contrairement à setTargetObjectId(), qui est utilisé lors de l’envoi d’un e-mail à un utilisateur Salesforce, setToAddresses() vous offre la possibilité d’envoyer des e-mails à n’importe quelle adresse e-mail valide, qu’elle appartienne ou non à un utilisateur Salesforce.

Quand devriez-vous utiliser setToAddresses() ?

setToAddresses() est particulièrement utile lorsque :

  • Vous devez envoyer des e-mails à des destinataires externes : si vos destinataires d’e-mails ne sont pas des utilisateurs de Salesforce, setToAddresses() est votre méthode de prédilection. Cela peut inclure des clients, des fournisseurs ou des partenaires qui ne disposent pas de compte Salesforce.
  • Vous envoyez des e-mails à plusieurs destinataires : vous pouvez transmettre un tableau d’adresses e-mail à setToAddresses(), ce qui facilite l’envoi d’un e-mail à plusieurs personnes à la fois.

  • Vos destinataires sont dynamiques et ne sont pas liés aux enregistrements Salesforce : par exemple, si vous envoyez un e-mail à des adresses extraites d’une liste dans un objet personnalisé, setToAddresses() offre la flexibilité nécessaire.

Comment utiliser setToAddresses() dans Apex

Regardons un exemple simple. Supposons que vous deviez envoyer un e-mail de confirmation de commande à un client une fois qu’il a passé une commande. L’e-mail du client est stocké dans un objet personnalisé appelé Order__c.

Voici un exemple :

public class OrderConfirmationEmail {

    public void sendOrderConfirmationEmail(Id orderId) {

        // Retrieve the order record

        Order__c order = [SELECT Id, CustomerEmail__c FROM Order__c WHERE Id = :orderId LIMIT 1];

       

        // Create the email message

        Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();

       

        // Set the email subject

        email.setSubject('Your Order Confirmation');

       

        // Set the email body

        email.setPlainTextBody('Thank you for your order. We will process it shortly.');

       

        // Set the recipient using setToAddresses

        email.setToAddresses(new String[] { order.CustomerEmail__c });

       

        // Send the email

        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { email });

    }

}


Dans cet exemple :

  • Nous interrogeons d’abord l’objet Order__c pour obtenir l’adresse e-mail du client.
  • Nous créons ensuite une nouvelle instance de Messaging.SingleEmailMessage.

  • La méthode setToAddresses() est utilisée pour spécifier l’adresse email du destinataire.

  • Enfin, nous envoyons l’e-mail en utilisant Messaging.sendEmail().

Gestion de plusieurs destinataires

L’un des points forts de setToAddresses() est sa capacité à gérer plusieurs destinataires. Étendons l’exemple précédent pour inclure un scénario dans lequel vous devez envoyer le même e-mail de confirmation de commande à plusieurs personnes, telles que le client, un responsable commercial et une équipe d’assistance.

Voici comment procéder :

public class OrderConfirmationEmail {

    public void sendOrderConfirmationEmail(Id orderId) {

        // Retrieve the order record

        Order__c order = [SELECT Id, CustomerEmail__c FROM Order__c WHERE Id = :orderId LIMIT 1];

       

        // Create the email message

        Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();

       

        // Set the email subject

        email.setSubject('Your Order Confirmation');

       

        // Set the email body

        email.setPlainTextBody('Thank you for your order. We will process it shortly.');

       

        // Set the recipients using setToAddresses

        String[] toAddresses = new String[] {

            order.CustomerEmail__c,

            'salesmanager@example.com',

            'supportteam@example.com'

        };

        email.setToAddresses(toAddresses);

       

        // Send the email

        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { email });

    }

}


Considérations clés

Bien que setToAddresses() soit puissant, il y a certaines choses à garder à l’esprit :

Conclusion

setToAddresses est une méthode polyvalente pour envoyer des e-mails dans Salesforce, en particulier lorsque vos destinataires ne sont pas des utilisateurs de Salesforce ou lorsque vous devez envoyer des e-mails à plusieurs destinataires. En comprenant comment et quand l’utiliser, vous pouvez rendre l’automatisation de votre messagerie Salesforce plus robuste et flexible.

Que vous envoyiez des confirmations de commande, des newsletters ou des alertes, setToAddresses() vous offre la flexibilité dont vous avez besoin pour transmettre le bon message aux bonnes personnes, à chaque fois. Bon codage !

Découvrez plus d’articles ci-dessous :

Envoi d’e-mails dans Salesforce

Documentation Salesforce






Source link