Шаблоны электронной почты Visualforce в Salesforce
Опубликовано: 2021-05-13С помощью шаблонов электронной почты Visualforce пользователи могут отправлять целевые и персонализированные электронные письма. Создатели шаблонов могут использовать мощный язык программирования Visualforce для создания шаблонного содержимого электронной почты.
Разработчики и администраторы могут использовать Visualforce для создания шаблонов электронной почты. Преимущество использования Visualforce по сравнению со стандартными шаблонами электронной почты HTML заключается в том, что Visualforce дает вам возможность выполнять расширенные операции с данными, отправляемыми получателю.
Все шаблоны электронной почты Visualforce должны содержаться в одном теге <messaging: emailTemplate>. Это аналогично тому, как обычные страницы Visualforce определяются в одном теге <apex: page>.
- Тег <messaging: emailTemplate> должен содержать либо один тег <messaging: htmlEmailBody>, либо один тег <messaging: plainTextEmailBody>.
- Некоторые стандартные компоненты Visualforce недоступны для использования в <messaging: emailTemplate>. К ним относятся <apex: detail>, <apex: pageBlock> и все связанные компоненты pageBlock, а также все входные компоненты, такие как <apex: form>. Если вы попытаетесь сохранить шаблон электронной почты Visualforce с этими компонентами, отобразится сообщение об ошибке.
Выполните одно из следующих действий:
- Если у вас есть разрешение на редактирование общедоступных шаблонов, в разделе «Настройка» введите «Шаблоны электронной почты» в поле «Быстрый поиск», затем выберите «Классические шаблоны электронной почты».
- Если у вас нет разрешения на редактирование общедоступных шаблонов, перейдите в личные настройки. Введите «Шаблоны» в поле «Быстрый поиск», затем выберите «Шаблоны электронной почты» или «Мои шаблоны» - в зависимости от того, какой из них появится.
- 1. Щелкните Новый шаблон.
- 2. Выберите Visualforce и нажмите Далее.
- 3. Вы не можете отправлять массовые сообщения электронной почты с помощью шаблона электронной почты Visualforce.
- 4. Выберите папку, в которой хотите сохранить шаблон.
- 5. Чтобы сделать шаблон доступным для использования, установите флажок Доступен для использования.
- 6. Введите имя в поле Имя шаблона электронной почты.
- 7. При необходимости измените Уникальное имя шаблона. Это уникальное имя относится к компоненту при использовании API платформы Lightning. В управляемых пакетах это уникальное имя предотвращает конфликты имен при установке пакетов. Это имя может содержать только символы подчеркивания и буквенно-цифровые символы и должно быть уникальным в вашей организации. Он должен начинаться с буквы, не включать пробелы, не заканчиваться подчеркиванием и не содержать двух последовательных подчеркиваний. С помощью поля «Уникальное имя шаблона» вы можете изменять имена определенных компонентов в управляемом пакете, и эти изменения отражаются в организации подписчика.
- 8. При желании выберите другой набор символов из раскрывающегося списка «Кодировка».
- 9. Введите описание шаблона. И имя, и описание шаблона предназначены только для внутреннего использования.
- 10. Введите тему вашего шаблона в поле «Тема электронного письма».
- 11. В раскрывающемся списке Тип получателя выберите тип получателя для получения электронной почты, созданной на основе шаблона.
- 12. При желании в раскрывающемся списке «Связанный с типом» выберите объект, из которого шаблон извлекает данные поля слияния.
- 13. Щелкните Сохранить.
- 14. На странице «Просмотр и изменение шаблонов электронной почты в Salesforce Classic» щелкните «Изменить шаблон».
- 15. Введите текст разметки для шаблона электронной почты Visualforce.
ПРИМЕЧАНИЕ. Если вы включаете изображение, мы рекомендуем загрузить его на вкладку «Документы», чтобы ссылаться на копию изображения на нашем сервере. Например:
<apex: image id = ”Logo” value = ”https://yourInstance.salesforce.com/servlet/servlet.ImageServer?
id = 015D0000000Dpwc & oid = 00DD0000000FHaG & lastMod = 127057656800 ″ />
- 1. Чтобы указать версию Visualforce и API, используемые с этим шаблоном электронной почты, щелкните «Параметры версии». Если вы установили управляемые пакеты из AppExchange, вы также можете указать, какую версию каждого управляемого пакета использовать с этим шаблоном электронной почты. Как правило, используйте значение по умолчанию для всех версий, чтобы связать шаблон электронной почты с самой последней версией Visualforce, API и каждым управляемым пакетом. Чтобы поддерживать конкретное поведение, вы можете указать более старую версию Visualforce и API. Чтобы получить доступ к компонентам или функциям, которые отличаются от самой последней версии пакета, вы можете указать более старую версию управляемого пакета.
- 2. Чтобы просмотреть подробную информацию о шаблоне, нажмите «Сохранить». Чтобы продолжить редактирование шаблона, нажмите «Быстрое сохранение». Разметка Visualforce должна быть действительной, прежде чем вы сможете сохранить шаблон.

/ ********************* Шаблон электронной почты 1 ************* /
Пример 1: обращения
Получатель
<messaging: emailTemplate subject = "Информация об аккаунте и обращениях {! recipient.Name}" recipientType = "Contact"> <сообщения: htmlEmailBody> <html> <head> </head> <body> Уважаемый {! Recipient.Name}, <br/> Найдите все открытые дела: <br/> <таблица> <tr> <th> Номер дела </th> <th> Происхождение дела </th> <th> Статус обращения </th> </tr> <apex: repeat value = "{! recipient.cases}" var = "case"> <tr> <td> {! case.CaseNumber} </td> <td> {! case.Origin} </td> <td> {! case.Status} </td> </tr> </ вершина: повторить> </table> </body> </html> </ messaging: htmlEmailBody> <сообщения: plainTextEmailBody> Поздравляю! Это ваш новый шаблон электронной почты Visualforce. </ messaging: plainTextEmailBody> </ messaging: emailTemplate>
/ ******************** Шаблон электронного письма 2 *************** /
Пример 2: Обращения к аккаунту
Получатель и связанные с ним

<messaging: emailTemplate subject = "Обращения к аккаунту как связанные с: {! relatedTo.Name}" recipientType = "Contact" relatedToType = "Account"> <сообщения: htmlEmailBody> <html> <head> </head> <body> Уважаемый {! RelatedTo.Name}, <br/> Найдите все открытые дела: <br/> <таблица> <tr> <th> Номер дела </th> <th> Происхождение дела </th> <th> Статус обращения </th> </tr> <apex: repeat value = "{! relatedTo.cases}" var = "case"> <tr> <td> {! case.CaseNumber} </td> <td> {! case.Origin} </td> <td> {! case.Status} </td> </tr> </ вершина: повторить> </table> </body> </html> </ messaging: htmlEmailBody> <сообщения: plainTextEmailBody> Поздравляю! Это ваш новый шаблон электронной почты Visualforce. </ messaging: plainTextEmailBody> </ messaging: emailTemplate>
Пример 3: Подробная информация о взносах студентов с использованием компонента
<messaging: emailTemplate subject = "Отправка студенческих взносов" recipientType = "Contact" relatedToType = "Student__c"> <сообщения: htmlEmailBody> <c: StudentFeesDetails stu> </ c: StudentFeesDetails> </ messaging: htmlEmailBody> <сообщения: plainTextEmailBody> Поздравляю! Это ваш новый шаблон электронной почты Visualforce. </ messaging: plainTextEmailBody> </ messaging: emailTemplate>
/ *************** Конец шаблонов электронной почты ************ /
/******************* Составная часть ******************/
<apex: component controller = "StudentFeesController" access = "global"> <Стиль> таблица {border: 1px solid # 000;} td, th {border: 1px solid # 000} </style> <apex: attribute name = "stuId" assignTo = "{! studentId}" type = "Id" description = "Student Id" /> <h1> Ваши комиссионные </h1> <таблица> <tr> <th> Дата </th> <th> Сумма </th> </tr> <apex: repeat value = "{! feeDetails}" var = "fee"> <tr> <td> <apex: outputField value = "{! fee.date__c}" /> </td> <td> {! fee.amount__c} </td> </tr> </ вершина: повторить> </table> </ apex: component>
/************** Класс ******************/
public class StudentFeesController { общедоступный идентификатор studentId {get; set;} public List <Fees__c> getFeesDetails () { return [выберите идентификатор, количество__c, дату__c из сборов__c, где student_Id__c =: studentId]; } }
/******************* Страница **********************/
<apex: page controller = "SendVFEmailTemplateController"> <вершина: форма> <вершина: pageBlock> <вершина: pageBlockButtons> <apex: commandButton value = "Отправить обращения" action = "{! sendCases}" /> <apex: commandButton value = "Отправить обращения к аккаунту" action = "{! sendAccountCases}" /> <apex: commandButton value = "Отправить подробную информацию о сборах" action = "{! sendFeeDetails}" /> </ apex: pageBlockButtons> </ apex: pageBlock> </ apex: form> </ apex: page>
/******************* Класс ********************/
открытый класс SendVFEmailTemplateController { EmailTemplate et; public SendVFEmailTemplateController () { } public void sendCases () { et = [выберите Id, Name из EmailTemplate, где DeveloperName = 'Account_Cases']; Messaging.SingleEmailMessage semail = новый Messaging.SingleEmailMessage (); semail.setTargetObjectId ('00328000005cwjF'); semail.setTemplateId (et.Id); Messaging.sendEmail (новый Messaging.SingleEmailMessage [] {semail}); } public void sendAccountCases () { et = [выберите Id, Name из EmailTemplate, где DeveloperName = 'Account_s_Cases']; Messaging.SingleEmailMessage semail = новый Messaging.SingleEmailMessage (); semail.setTargetObjectId ('00335672305cwjF'); semail.setTemplateId (et.Id); semail.setWhatId ('00123400006azlA'); Messaging.sendEmail (новый Messaging.SingleEmailMessage [] {semail}); } public void sendFeeDetails () { et = [выберите Id, Name из EmailTemplate, где DeveloperName = 'Student_Fees_Info']; Messaging.SingleEmailMessage semail = новый Messaging.SingleEmailMessage (); semail.setTargetObjectId ('00335672305cwjF'); semail.setTemplateId (et.Id); semail.setWhatId ('a002320080DGNjx'); Messaging.sendEmail (новый Messaging.SingleEmailMessage [] {semail}); } }
Мы надеемся, что этот блог помог вам научиться использовать шаблоны электронной почты Visualforce в Salesforce. Если вам требуются услуги по развитию продаж, свяжитесь с нашей командой консультантов по продажам.