Salesforce의 Visualforce 이메일 템플릿

게시 됨: 2021-05-13

Visualforce 이메일 템플릿을 사용하여 사용자는 맞춤형 이메일을 보낼 수 있습니다. 템플릿 작성자는 강력한 Visualforce 프로그래밍 언어를 활용하여 템플릿 이메일 콘텐츠를 만들 수 있습니다.

개발자와 관리자는 Visualforce를 사용하여 이메일 템플릿을 생성할 수 있습니다. 표준 HTML 이메일 템플릿보다 Visualforce를 사용할 때의 이점은 Visualforce가 수신자에게 전송되는 데이터에 대해 고급 작업을 수행할 수 있는 기능을 제공한다는 것입니다.

모든 Visualforce 이메일 템플릿은 단일 <messaging:emailTemplate> 태그 내에 포함되어야 합니다. 이는 단일 <apex:page> 태그 내에서 정의되는 일반 Visualforce 페이지와 유사합니다.

  • <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. 필요한 경우 템플릿 고유 이름을 변경합니다. 이 고유 이름은 Lightning Platform API를 사용할 때 구성 요소를 나타냅니다. 관리되는 패키지에서 이 고유한 이름은 패키지 설치 시 이름 충돌을 방지합니다. 이 이름은 밑줄과 영숫자만 포함할 수 있으며 조직에서 고유해야 합니다. 공백을 포함하지 않고, 밑줄로 끝나지 않고, 두 개의 연속적인 밑줄을 포함할 수 없는 문자로 시작해야 합니다. 템플릿 고유 이름 필드를 사용하여 관리 패키지에서 특정 구성 요소의 이름을 변경할 수 있으며 변경 사항은 가입자의 조직에 반영됩니다.
  • 8. 원하는 경우 인코딩 드롭다운 목록에서 다른 문자 집합을 선택합니다.
  • 9. 템플릿에 대한 설명을 입력합니다. 템플릿 이름과 설명은 모두 내부용입니다.
  • 10. 이메일 제목에 템플릿의 제목 줄을 입력합니다.
  • 11. 수신자 유형 드롭다운 목록에서 템플릿에서 생성된 이메일을 수신할 수신자 유형을 선택합니다.
  • 12. 원하는 경우 관련 항목 유형 드롭다운 목록에서 템플릿이 병합 필드 데이터를 검색하는 개체를 선택합니다.
  • 13. 저장을 클릭합니다.
  • 14. Salesforce Classic에서 이메일 템플릿 보기 및 편집 페이지에서 템플릿 편집을 클릭합니다.
  • 15. Visualforce 이메일 템플릿에 대한 마크업 텍스트를 입력합니다.

참고: 이미지를 포함하는 경우 문서 탭에 업로드하여 서버에 있는 이미지 사본을 참조하는 것이 좋습니다. 예를 들어:

<apex:image id=”로고” 값=”https://yourInstance.salesforce.com/servlet/servlet.ImageServer?
아이디=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=127057656800″ />

  • 1. 이 이메일 템플릿에 사용되는 Visualforce 및 API 버전을 지정하려면 버전 설정을 클릭합니다. AppExchange에서 관리 패키지를 설치한 경우 이 이메일 템플릿과 함께 사용할 각 관리 패키지 버전을 지정할 수도 있습니다. 일반적으로 모든 버전의 기본값을 사용하여 이메일 템플릿을 Visualforce, API 및 각 관리 패키지의 최신 버전과 연결합니다. 특정 동작을 유지하기 위해 이전 버전의 Visualforce 및 API를 지정할 수 있습니다. 최신 패키지 버전과 다른 구성 요소 또는 기능에 액세스하기 위해 이전 버전의 관리 패키지를 지정할 수 있습니다.
  • 2. 템플릿의 세부 정보를 보려면 저장을 클릭합니다. 템플릿 편집을 계속하려면 빠른 저장을 클릭하십시오. 템플릿을 저장하려면 Visualforce 마크업이 유효해야 합니다.
세일즈포스 개발자를 고용하다

/************************ 이메일 템플릿 1 *************/
예 1: 문의 사례
받는 사람

 <messaging:emailTemplate subject="계정 및 사례 정보 {!recipient.Name}" recipientType="연락처" >
<messaging:html이메일 본문>
    <html>
    <머리>
    </head>
    <본체>
        친애하는 {!recipient.Name}님,<br/>
        열려 있는 모든 케이스를 찾으십시오.<br/>
        <표>
        <tr>
            <th>케이스 번호</th>
            <th>케이스 출처</th>
            <th>케이스 상태</th>
        </tr>
        <apex:반복 값="{!recipient.cases}" var="case">
        <tr>
            <td>{!case.CaseNumber}</td>
            <td>{!case.Origin}</td>
            <td>{!case.Status}</td>
        </tr> 
        </apex:반복>
        </표>
    </바디>
</html>
</messaging:html이메일 본문>
<messaging:plainTextEmailBody>
축하합니다!
이것은 새로운 Visualforce 이메일 템플릿입니다.
</messaging:plainTextEmailBody>
</messaging:이메일 템플릿>

/******************** 이메일 템플릿 2 ***************/
예 2: 계정 사례
수신자 및 관련 대상

 <messaging:emailTemplate subject="관련된 계정 사례: {!relatedTo.Name}" recipientType="Contact" relatedToType="Account">
<messaging:html이메일 본문>
    <html>
    <머리>
    </head>
    <본체>
        친애하는 {!relatedTo.Name}님,<br/>
        열려 있는 모든 케이스를 찾으십시오.<br/>
        <표>
        <tr>
            <th>케이스 번호</th>
            <th>케이스 출처</th>
            <th>케이스 상태</th>
        </tr>
        <apex:반복 값="{!relatedTo.cases}" var="case">
        <tr>
            <td>{!case.CaseNumber}</td>
            <td>{!case.Origin}</td>
            <td>{!case.Status}</td>
        </tr> 
        </apex:반복>
        </표>
    </바디>
</html>
</messaging:html이메일 본문>
<messaging:plainTextEmailBody>
축하합니다!
이것은 새로운 Visualforce 이메일 템플릿입니다.
</messaging:plainTextEmailBody>
</messaging:이메일 템플릿>

예제 3 : 컴포넌트를 사용한 학생비 세부정보

 <messaging:emailTemplate subject="학생비 제출" recipientType="Contact" relatedToType="Student__c">
<messaging:html이메일 본문>
    <c:StudentFeesDetails 학생></c:StudentFeesDetails>
</messaging:html이메일 본문>
<messaging:plainTextEmailBody>
축하합니다!
이것은 새로운 Visualforce 이메일 템플릿입니다.
</messaging:plainTextEmailBody>
</messaging:이메일 템플릿>

/****************** 이메일 템플릿 종료 *********/

/******************* 요소 ******************/

 <apex:component controller="StudentFeesController" access="global">
    <스타일>
    표{테두리:1px 솔리드 #000;}
        td,th {테두리: 1px 솔리드 #000}
    </스타일>
    <apex:attribute name="stuId" assignTo="{!studentId}" type="Id" description="학생 ID" />
    <h1>귀하의 수수료</h1>
    <표>
    <tr>
        <th>날짜</th>
        <th>금액</th>
    </tr>
    <apex:반복 값="{!feesDetails}" var="수수료" >
        <tr>
            <td><apex:outputField 값="{!fee.date__c}" /></td>
            <td>{!fee.amount__c}</td>
        </tr>
    </apex:반복>
    </표>
</apex:컴포넌트>

/************** 수업 ******************/

 공개 클래스 StudentFeesController{
    공개 ID 학생 ID {get;set;}
    공개 목록<Fees__c> getFeesDetails(){
        return [select id, amount__c, date__c from fee__c where student_Id__c =: studentId];
    }
}

/************************ 페이지 **********************/

 <apex:page 컨트롤러="SendVFEmailTemplateController">
    <꼭대기:형태>
        <apex:page블록>
            <apex:pageBlockButtons>
                <apex:commandButton value="문의 사례 보내기" action="{!sendCases}"/>
                <apex:commandButton value="계정 사례 보내기" action="{!sendAccountCases}"/>
                <apex:commandButton value="전송 수수료 세부 정보" action="{!sendFeeDetails}"/>
                
            </apex:pageBlockButtons>
        </apex:페이지 차단>
    </apex:양식>
</apex:페이지>

/******************* 수업 ********************/

 공개 클래스 SendVFEmailTemplateController{
    EmailTemplate et;
    공개 SendVFEmailTemplateController(){
    
    }
    
    공개 무효 sendCases(){
        et = [Id, Name from EmailTemplate 선택, 여기서 DeveloperName = 'Account_Cases'];
        Messaging.SingleEmailMessage 이메일 = 새로운 Messaging.SingleEmailMessage();
        semail.setTargetObjectId('00328000005cwjF');
        semail.setTemplateId(et.Id);
        Messaging.sendEmail(새로운 Messaging.SingleEmailMessage[] {이메일});
    }
    
    공개 무효 sendAccountCases(){
        et = [Id, Name from EmailTemplate 선택, 여기서 DeveloperName = 'Account_s_Cases'];
        Messaging.SingleEmailMessage 이메일 = 새로운 Messaging.SingleEmailMessage();
        semail.setTargetObjectId('00335672305cwjF');
        semail.setTemplateId(et.Id);
        semail.setWhatId('00123400006azlA');
        Messaging.sendEmail(새로운 Messaging.SingleEmailMessage[] {이메일});
    }
    
    공개 무효 sendFeeDetails(){
        et = [Id, Name from EmailTemplate 선택, 여기서 DeveloperName = 'Student_Fees_Info'];
        Messaging.SingleEmailMessage 이메일 = 새로운 Messaging.SingleEmailMessage();
        semail.setTargetObjectId('00335672305cwjF');
        semail.setTemplateId(et.Id);
        semail.setWhatId('a002320080DGNjx');
        Messaging.sendEmail(새로운 Messaging.SingleEmailMessage[] {이메일});        
    }
}

이 블로그가 Salesforce에서 Visualforce 이메일 템플릿을 사용하는 방법을 배우는 데 도움이 되었기를 바랍니다. Salesforce 개발 서비스가 필요한 경우 Salesforce 컨설팅 팀에 문의하십시오.