Шаблоны электронной почты Visualforce в Salesforce
Опубликовано: 2021-05-13Последнее обновление: 21 января 2022 г.
С помощью шаблонов электронной почты 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}" получательType="Контакт" >
<обмен сообщениями:htmlEmailBody>
<html>
<голова>
</голова>
<тело>
Уважаемый {!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>
</вершина:повторить>
</таблица>
</тело>
</html>
</messaging:htmlEmailBody>
<обмен сообщениями:plainTextEmailBody>
Поздравляем!
Это ваш новый шаблон электронной почты Visualforce.
</сообщения:plainTextEmailBody>
</messaging:emailTemplate>
/********************* Шаблон электронной почты 2 ***************/
Пример 2: Дела по учетным записям
Получатель и связанные с ним

<messaging:emailTemplate subject="Случаи учетной записи, связанные с: {!relatedTo.Name}" ReceiverType="Contact" relatedToType="Account">
<обмен сообщениями:htmlEmailBody>
<html>
<голова>
</голова>
<тело>
Уважаемый {!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>
</вершина:повторить>
</таблица>
</тело>
</html>
</messaging:htmlEmailBody>
<обмен сообщениями:plainTextEmailBody>
Поздравляем!
Это ваш новый шаблон электронной почты Visualforce.
</сообщения:plainTextEmailBody>
</messaging:emailTemplate>
Пример 3: Подробная информация о студенческих сборах с использованием компонента
<messaging:emailTemplate subject="Представление студенческих сборов"recipientType="Контакт" relatedToType="Student__c">
<обмен сообщениями:htmlEmailBody>
<c:StudentFeesDetails stu></c:StudentFeesDetails>
</messaging:htmlEmailBody>
<обмен сообщениями:plainTextEmailBody>
Поздравляем!
Это ваш новый шаблон электронной почты Visualforce.
</сообщения:plainTextEmailBody>
</messaging:emailTemplate>
/*************** Конец шаблонов электронной почты ************/
/******************* Составная часть ******************/
<apex:component controller="StudentFesController" access="global">
<Стиль>
таблица{граница:1px сплошная #000;}
td,th {граница: 1px сплошная #000}
</стиль>
<apex:attribute name="stuId" assignTo="{!studentId}" type="Id" description="Идентификатор учащегося" />
<h1>Ваши платежи</h1>
<таблица>
<tr>
<th>Дата</th>
<th>Сумма</th>
</tr>
<apex:repeat value="{!feesDetails}" var="fee" >
<tr>
<td><apex:outputField value="{!fee.date__c}" /></td>
<td>{!fee.amount__c}</td>
</tr>
</вершина:повторить>
</таблица>
</апекс:компонент>
/************** Класс ******************/
открытый класс StudentFeesController {
публичный идентификатор studentId {get;set;}
общедоступный список<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>
</апекс:форма>
</апекс:страница>
/******************* Класс ********************/
открытый класс SendVFEmailTemplateController{
Шаблон электронной почты и др.;
общедоступный SendVFEmailTemplateController(){
}
общественные недействительные sendCases () {
et = [выберите идентификатор, имя из шаблона электронной почты, где DeveloperName = 'Account_Cases'];
Messaging.SingleEmailMessage semail = new Messaging.SingleEmailMessage ();
semail.setTargetObjectId('00328000005cwjF');
semail.setTemplateId(et.Id);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {semail});
}
public void sendAccountCases(){
et = [выберите идентификатор, имя из шаблона электронной почты, где DeveloperName = 'Account_s_Cases'];
Messaging.SingleEmailMessage semail = new Messaging.SingleEmailMessage ();
semail.setTargetObjectId('00335672305cwjF');
semail.setTemplateId(et.Id);
semail.setWhatId('00123400006azlA');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {semail});
}
public void sendFeeDetails(){
et = [выберите идентификатор, имя из шаблона электронной почты, где DeveloperName = 'Student_Fee_Info'];
Messaging.SingleEmailMessage semail = new Messaging.SingleEmailMessage ();
semail.setTargetObjectId('00335672305cwjF');
semail.setTemplateId(et.Id);
semail.setWhatId('a002320080DGNjx');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {semail});
}
}
Мы надеемся, что этот блог помог вам научиться использовать шаблоны электронной почты Visualforce в Salesforce. Если вам требуются услуги по развитию отдела продаж, свяжитесь с нашей командой консультантов по продажам.
