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