Шаблоны электронной почты 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. Если вам требуются услуги по развитию продаж, свяжитесь с нашей командой консультантов по продажам.
