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