Szablony e-mail Visualforce w Salesforce
Opublikowany: 2021-05-13Dzięki szablonom e-mail Visualforce użytkownicy mogą wysyłać ukierunkowane i spersonalizowane wiadomości e-mail. Twórcy szablonów mogą wykorzystać potężny język programowania Visualforce do tworzenia treści wiadomości e-mail z szablonami.
Programiści i administratorzy mogą używać Visualforce do tworzenia szablonów wiadomości e-mail. Zaletą korzystania z Visualforce nad standardowymi szablonami wiadomości e-mail w formacie HTML jest to, że Visualforce daje możliwość wykonywania zaawansowanych operacji na danych wysyłanych do odbiorcy.
Wszystkie szablony wiadomości e-mail Visualforce muszą znajdować się w jednym tagu <messaging:emailTemplate>. Jest to analogiczne do definiowania zwykłych stron Visualforce w jednym tagu <apex:page>.
- Znacznik <messaging:emailTemplate> musi zawierać pojedynczy znacznik <messaging:htmlEmailBody> lub pojedynczy znacznik <messaging:plainTextEmailBody>.
- Kilka standardowych komponentów Visualforce nie jest dostępnych do użycia w <messaging:emailTemplate>. Obejmują one <apex:detail>,<apex:pageBlock> i wszystkie powiązane komponenty pageBlock oraz wszystkie komponenty wejściowe, takie jak <apex:form>. Jeśli spróbujesz zapisać szablon wiadomości e-mail Visualforce z tymi komponentami, zostanie wyświetlony komunikat o błędzie.
Wykonaj jedną z następujących czynności:
- Jeśli masz uprawnienia do edytowania szablonów publicznych, w sekcji Konfiguracja wpisz Szablony wiadomości e-mail w polu Szybkie wyszukiwanie, a następnie wybierz Klasyczne szablony wiadomości e-mail.
- Jeśli nie masz uprawnień do edytowania szablonów publicznych, przejdź do ustawień osobistych. Wprowadź Szablony w polu Szybkie wyszukiwanie, a następnie wybierz Szablony wiadomości e-mail lub Moje szablony — w zależności od tego, które z nich się pojawi.
- 1. Kliknij Nowy szablon.
- 2. Wybierz Visualforce i kliknij Dalej.
- 3. Nie możesz wysłać masowej wiadomości e-mail za pomocą szablonu wiadomości e-mail Visualforce.
- 4. Wybierz folder, w którym chcesz przechowywać szablon.
- 5. Aby udostępnić szablon do użytku, zaznacz pole wyboru Dostępny do użycia.
- 6. Wprowadź nazwę w polu Nazwa szablonu e-mail.
- 7. W razie potrzeby zmień unikalną nazwę szablonu. Ta unikalna nazwa odnosi się do komponentu podczas korzystania z interfejsu Lightning Platform API. W pakietach zarządzanych ta unikatowa nazwa zapobiega konfliktom nazw podczas instalacji pakietów. Ta nazwa może zawierać tylko znaki podkreślenia i znaki alfanumeryczne i musi być unikalna w Twojej organizacji. Musi zaczynać się od litery, nie może zawierać spacji, nie może kończyć się podkreśleniem i nie może zawierać dwóch kolejnych znaków podkreślenia. Za pomocą pola Unikalna nazwa szablonu możesz zmienić nazwy niektórych składników w zarządzanym pakiecie, a zmiany zostaną odzwierciedlone w organizacji subskrybenta.
- 8. W razie potrzeby wybierz inny zestaw znaków z listy rozwijanej Kodowanie.
- 9. Wprowadź opis szablonu. Zarówno nazwa szablonu, jak i opis są przeznaczone wyłącznie do użytku wewnętrznego.
- 10. Wprowadź wiersz tematu szablonu w temacie wiadomości e-mail.
- 11. Z listy rozwijanej Typ odbiorcy wybierz typ odbiorcy wiadomości e-mail utworzonej z szablonu.
- 12. W razie potrzeby z listy rozwijanej Powiązane z typem wybierz obiekt, z którego szablon pobiera dane pola scalania.
- 13. Kliknij Zapisz.
- 14. Na stronie Wyświetl i edytuj szablony wiadomości e-mail w klasycznej wersji Salesforce kliknij Edytuj szablon.
- 15. Wprowadź tekst znacznika dla szablonu wiadomości e-mail Visualforce.
UWAGA: Jeśli dołączasz obraz, zalecamy przesłanie go do zakładki Dokumenty, aby odwołać się do kopii obrazu na naszym serwerze. Na przykład:
<apex:image id=”Logo” value=”https://yourInstance.salesforce.com/servlet/servlet.ImageServer?
id=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=127057656800″ />
- 1. Aby określić wersję Visualforce i API używane z tym szablonem wiadomości e-mail, kliknij Ustawienia wersji. Jeśli zainstalowałeś zarządzane pakiety z AppExchange, możesz również określić, której wersji każdego zarządzanego pakietu chcesz używać z tym szablonem wiadomości e-mail. Zwykle używaj wartości domyślnej dla wszystkich wersji, aby powiązać szablon wiadomości e-mail z najnowszą wersją Visualforce, interfejsem API i każdym zarządzanym pakietem. Aby zachować określone zachowanie, możesz określić starszą wersję Visualforce i API. Aby uzyskać dostęp do składników lub funkcji, które różnią się od najnowszej wersji pakietu, można określić starszą wersję pakietu zarządzanego.
- 2. Aby wyświetlić szczegóły szablonu, kliknij Zapisz. Aby kontynuować edycję szablonu, kliknij Szybki zapis. Twoje znaczniki Visualforce muszą być prawidłowe, zanim będziesz mógł zapisać szablon.
/********************* Szablon wiadomości e-mail 1 ***********/
Przykład 1: Sprawy kontaktowe
Odbiorca
<messaging:emailTemplate subject="Informacje o koncie i sprawach {!recipient.Name}" receiverType="Kontakt"> <messaging:htmlEmailBody > <html> <głowa> </head> <ciało> Drogi {!Recipient.Name},<br/> Znajdź wszystkie otwarte sprawy:<br/> <tabela> <tr> <th>Numer sprawy</th> <th>Pochodzenie sprawy</th> <th>Stan sprawy</th> </tr> <apex:repeat value="{!recipient.cases}" var="case"> <tr> <td>{!case.Numer sprawy}</td> <td>{!case.Origin}</td> <td>{!case.Status}</td> </tr> </apex:powtórz> </table> </body> </html> </messaging:htmlEmailBody> <messaging:plainTextEmailBody > Gratulacje! To jest Twój nowy szablon e-mail Visualforce. </messaging:plainTextEmailBody> </messaging: e-mailTemplate>
/******************** Szablon e-maila 2 ***************/
Przykład 2: Sprawy dotyczące kont
Odbiorca i powiązany z
<messaging:emailTemplate subject="Sprawy dotyczące konta powiązane z: {!relatedTo.Name}" receiverType="Kontakt" relatedToType="Account"> <messaging:htmlEmailBody > <html> <głowa> </head> <ciało> Drogi {!relatedTo.Name},<br/> Znajdź wszystkie otwarte sprawy:<br/> <tabela> <tr> <th>Numer sprawy</th> <th>Pochodzenie sprawy</th> <th>Stan sprawy</th> </tr> <apex:repeat value="{!relatedTo.cases}" var="case"> <tr> <td>{!case.Numer sprawy}</td> <td>{!case.Origin}</td> <td>{!case.Status}</td> </tr> </apex:powtórz> </table> </body> </html> </messaging:htmlEmailBody> <messaging:plainTextEmailBody > Gratulacje! To jest Twój nowy szablon e-mail Visualforce. </messaging:plainTextEmailBody> </messaging: e-mailTemplate>
Przykład 3: Szczegóły opłat studenckich za pomocą komponentu
<messaging:emailTemplate subject="Przesyłanie opłat studenckich" receiverType="Kontakt" relatedToType="Student__c"> <messaging:htmlEmailBody > <c:StudentFeesDetails stu></c:StudentFeesDetails> </messaging:htmlEmailBody> <messaging:plainTextEmailBody > Gratulacje! To jest Twój nowy szablon e-mail Visualforce. </messaging:plainTextEmailBody> </messaging: e-mailTemplate>
/*************** Zakończ szablony wiadomości e-mail ************/
/******************* Składnik ******************/
<apex:component controller="StudentFeesController" access="global"> <Styl> table{border:1px solid #000;} td,th {obramowanie: 1px stałe #000} </style> <apex:attribute name="stuId" assignTo="{!studentId}" type="Id" description="Identyfikator ucznia" /> <h1>Oferty dotyczące opłat</h1> <tabela> <tr> <th>Data</th> <th>Kwota</th> </tr> <apex:repeat value="{!feesDetails}" var="opłata" > <tr> <td><apex:outputField value="{!fee.date__c}" /></td> <td>{!fee.amount__c}</td> </tr> </apex:powtórz> </table> </apex:komponent>
/************** Klasa ******************/
public class StudentFeesController{ publiczny identyfikator studentId {get;set;} public List<Opłaty__c> getFeesDetails(){ return [wybierz id, kwota__c, data__c z opłat__c gdzie student_Id__c =: studentId]; } }
/******************** Strona **********************/
<apex:page controller="SendVFEmailTemplateController"> <wierzchołek:forma> <apex:pageBlock> <apex:pageBlockButtons> <apex:commandButton value="Wyślij sprawy kontaktowe" action="{!sendCases}"/> <apex:commandButton value="Wyślij sprawy dotyczące kont" action="{!sendAccountCases}"/> <apex:commandButton value="Wyślij szczegóły opłat" action="{!sendFeeDetails}"/> </apex:pageBlockButtons> </apex:pageBlock> </apex:forma> </apex:strona>
/******************* Klasa ********************/
public class SendVFEmailTemplateController{ Szablon e-mail et; public SendVFEmailTemplateController(){ } public void sendCases(){ et = [wybierz identyfikator, nazwę z szablonu e-mail, gdzie DeveloperName = 'Account_Cases']; Messaging.SingleEmailMessage semail = nowy Messaging.SingleEmailMessage (); semail.setTargetObjectId('00328000005cwjF'); semail.setTemplateId(et.Id); Messaging.sendEmail(nowa Messaging.SingleEmailMessage[] {semail}); } public void sendAccountCases(){ et = [wybierz identyfikator, nazwę z szablonu e-mail, gdzie nazwa_programisty = 'Account_s_cases']; Messaging.SingleEmailMessage semail = nowy Messaging.SingleEmailMessage (); semail.setTargetObjectId('00335672305cwjF'); semail.setTemplateId(et.Id); semail.setWhatId('00123400006azlA'); Messaging.sendEmail(nowa Messaging.SingleEmailMessage[] {semail}); } public void sendFeeDetails(){ et = [wybierz identyfikator, nazwę z szablonu e-mail, gdzie nazwa_programisty = 'Informacje_o_opłatach_studenta']; Messaging.SingleEmailMessage semail = nowy Messaging.SingleEmailMessage (); semail.setTargetObjectId('00335672305cwjF'); semail.setTemplateId(et.Id); semail.setWhatId('a002320080DGNjx'); Messaging.sendEmail(nowa Messaging.SingleEmailMessage[] {semail}); } }
Mamy nadzieję, że ten blog pomógł Ci w nauce korzystania z szablonów e-mail Visualforce w Salesforce. Jeśli potrzebujesz usług rozwoju Salesforce, skontaktuj się z naszym zespołem konsultingowym Salesforce.