Template Email Visualforce Di Salesforce

Diterbitkan: 2021-05-13

Dengan template email Visualforce, pengguna dapat mengirim email yang ditargetkan dan dipersonalisasi. Pembuat template dapat memanfaatkan bahasa pemrograman Visualforce yang kuat untuk membuat konten email template.

Pengembang dan administrator dapat menggunakan Visualforce untuk membuat template email. Keuntungan menggunakan Visualforce dibandingkan template email HTML standar adalah Visualforce memberi Anda kemampuan untuk melakukan operasi lanjutan pada data yang dikirim ke penerima.

Semua template email Visualforce harus dimuat dalam satu tag <messaging:emailTemplate>. Ini analog dengan halaman Visualforce biasa yang didefinisikan dalam satu tag <apex:page>.

  • Tag <messaging:emailTemplate> harus berisi tag <messaging:htmlEmailBody> tunggal atau tag <messaging:plainTextEmailBody> tunggal.
  • Beberapa komponen Visualforce standar tidak tersedia untuk digunakan dalam <messaging:emailTemplate>. Ini termasuk <apex:detail>,<apex:pageBlock> dan semua komponen pageBlock terkait, dan semua komponen input seperti <apex:form>. Jika Anda mencoba untuk menyimpan template email Visualforce dengan komponen ini, pesan kesalahan akan ditampilkan.

Lakukan salah satu dari berikut ini:

  • Jika Anda memiliki izin untuk mengedit template publik, dari Setup, masukkan Template Email di kotak Cari Cepat, lalu pilih Template Email Klasik.
  • Jika Anda tidak memiliki izin untuk mengedit template publik, buka pengaturan pribadi Anda. Masukkan Template di kotak Cari Cepat, lalu pilih Template Email atau Template Saya—mana saja yang muncul.
  • 1. Klik Template Baru.
  • 2. Pilih Visualforce dan klik Next.
  • 3. Anda tidak dapat mengirim email massal menggunakan template email Visualforce.
  • 4. Pilih folder untuk menyimpan template.
  • 5. Agar template tersedia untuk digunakan, pilih kotak centang Tersedia untuk Digunakan.
  • 6. Masukkan nama di Email Template Name.
  • 7. Jika perlu, ubah Nama Unik Template. Nama unik ini mengacu pada komponen saat Anda menggunakan Lightning Platform API. Dalam paket terkelola, nama unik ini mencegah konflik penamaan dalam penginstalan paket. Nama ini hanya boleh berisi garis bawah dan karakter alfanumerik, dan harus unik di org. Itu harus dimulai dengan huruf, tidak termasuk spasi, tidak diakhiri dengan garis bawah, dan tidak mengandung dua garis bawah berturut-turut. Dengan bidang Nama Unik Template, Anda dapat mengubah nama komponen tertentu dalam paket terkelola dan perubahan tersebut tercermin dalam organisasi pelanggan.
  • 8. Jika diinginkan, pilih set karakter yang berbeda dari daftar dropdown Encoding.
  • 9. Masukkan deskripsi untuk template. Nama dan deskripsi template hanya untuk penggunaan internal Anda.
  • 10. Masukkan baris subjek untuk template Anda di Subjek Email.
  • 11. Dalam daftar dropdown Recipient Type, pilih tipe penerima untuk menerima email yang dibuat dari template.
  • 12. Jika diinginkan, dalam daftar dropdown Related To Type, pilih objek dari mana template mengambil data field gabungan.
  • 13. Klik Simpan.
  • 14. Pada halaman Lihat dan Edit Template Email di Salesforce Classic, klik Edit Template.
  • 15. Masukkan teks markup untuk template email Visualforce Anda.

CATATAN: Jika Anda menyertakan gambar, kami sarankan untuk mengunggahnya ke tab Dokumen untuk referensi salinan gambar di server kami. Sebagai contoh:

<apex:image id=”Logo” value=”https://yourInstance.salesforce.com/servlet/servlet.ImageServer?
id=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=127057656800″ />

  • 1. Untuk menentukan versi Visualforce dan API yang digunakan dengan template email ini, klik Pengaturan Versi. Jika Anda telah menginstal paket terkelola dari AppExchange, Anda juga dapat menentukan versi mana dari setiap paket terkelola yang akan digunakan dengan template email ini. Umumnya, gunakan nilai default untuk semua versi, untuk mengaitkan template email dengan versi terbaru Visualforce, API, dan setiap paket terkelola. Untuk mempertahankan perilaku tertentu, Anda dapat menentukan versi Visualforce dan API yang lebih lama. Untuk mengakses komponen atau fungsionalitas yang berbeda dari versi paket terbaru, Anda dapat menentukan versi paket terkelola yang lebih lama.
  • 2. Untuk melihat detail template, klik Simpan. Untuk melanjutkan mengedit template Anda, klik Simpan Cepat. Markup Visualforce Anda harus valid sebelum Anda dapat menyimpan template Anda.
mempekerjakan pengembang tenaga penjualan

/************************ Template Email 1 *************/
Contoh 1: Kasus Kontak
Penerima

 <messaging:emailTemplate subject="Akun dan Informasi Kasus {!recipient.Name}" penerimaType="Kontak" >
<messaging:htmlEmailBody >
    <html>
    <kepala>
    </head>
    <tubuh>
        {!recipient.Name} yang terhormat,<br/>
        Silakan temukan semua kasing terbuka Anda:<br/>
        <tabel>
        <tr>
            <th>Nomor Kasus</th>
            <th>Asal Kasus</th>
            <th>Status Kasus</th>
        </tr>
        <apex:repeat value="{!recipient.cases}" var="case">
        <tr>
            <td>{!case.CaseNumber}</td>
            <td>{!case.Origin}</td>
            <td>{!case.Status}</td>
        </tr> 
        </apex:repeat>
        </tabel>
    </tubuh>
</html>
</messaging:htmlEmailBody>
<pesan:plainTextEmailBody >
Selamat!
Ini adalah Template Email Visualforce baru Anda.
</messaging:plainTextEmailBody>
</messaging:emailTemplate>

/********************* Template Email 2 **************/
Contoh 2: Kasus Akun
Penerima dan TerkaitTo

 <messaging:emailTemplate subject="Account Cases as Related To : {!relatedTo.Name}" receiverType="Contact" relatedToType="Account">
<messaging:htmlEmailBody >
    <html>
    <kepala>
    </head>
    <tubuh>
        {!relatedTo.Name} yang terhormat,<br/>
        Silakan temukan semua kasing terbuka Anda:<br/>
        <tabel>
        <tr>
            <th>Nomor Kasus</th>
            <th>Asal Kasus</th>
            <th>Status Kasus</th>
        </tr>
        <apex:repeat value="{!relatedTo.cases}" var="case">
        <tr>
            <td>{!case.CaseNumber}</td>
            <td>{!case.Origin}</td>
            <td>{!case.Status}</td>
        </tr> 
        </apex:repeat>
        </tabel>
    </tubuh>
</html>
</messaging:htmlEmailBody>
<pesan:plainTextEmailBody >
Selamat!
Ini adalah Template Email Visualforce baru Anda.
</messaging:plainTextEmailBody>
</messaging:emailTemplate>

Contoh 3 : Rincian Biaya Siswa Menggunakan Komponen

 <messaging:emailTemplate subject="Pengajuan Biaya Siswa" receiverType="Kontak" relatedToType="Student__c">
<messaging:htmlEmailBody >
    <c:StudentFeesDetails stu></c:StudentFeesDetails>
</messaging:htmlEmailBody>
<pesan:plainTextEmailBody >
Selamat!
Ini adalah Template Email Visualforce baru Anda.
</messaging:plainTextEmailBody>
</messaging:emailTemplate>

/*************** Akhiri Template Email ************/

/********************** Komponen ******************/

 <apex:component controller="StudentFeesController" access="global">
    <Gaya>
    tabel{border:1px solid #000;}
        td,th {batas: 1px solid #000}
    </ gaya>
    <apex:attribute name="stuId" assignTo="{!studentId}" type="Id" description="Student Id" />
    <h1>Deal Biaya Anda</h1>
    <tabel >
    <tr>
        <th>Tanggal</th>
        <th>Jumlah</th>
    </tr>
    <apex:repeat value="{!feesDetails}" var="fee" >
        <tr>
            <td><apex:outputField value="{!fee.date__c}" /></td>
            <td>{!fee.amount__c}</td>
        </tr>
    </apex:repeat>
    </tabel>
</apex:component>

/************** Kelas ******************/

 StudentFeesController kelas publik{
    ID publik studentId {get;set;}
    Daftar publik<Fees__c> getFeesDetails(){
        return [pilih id, jumlah__c, tanggal__c dari biaya__c di mana student_Id__c =: studentId];
    }
}

/******************* Halaman **********************/

 <apex:page controller="SendVFEmailTemplateController">
    <puncak:form>
        <apex:pageBlock>
            <apex:pageBlockButtons>
                <apex:commandButton value="Kirim Kasus Kontak" action="{!sendCases}"/>
                <apex:commandButton value="Kirim Kasus Akun" action="{!sendAccountCases}"/>
                <apex:commandButton value="Kirim Rincian Biaya" action="{!sendFeeDetails}"/>
                
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>
</apex:halaman>

/******************* Kelas ********************/

 kelas publik SendVFEmailTemplateController{
    EmailTemplat dan;
    publik SendVFEmailTemplateController(){
    
    }
    
    public void sendCases(){
        et = [pilih Id, Nama dari EmailTemplate dimana DeveloperName = 'Account_Cases'];
        Messaging.SingleEmailMessage semail = Messaging baru.SingleEmailMessage ();
        semail.setTargetObjectId('00328000005cwjF');
        semail.setTemplateId(et.Id);
        Messaging.sendEmail(Pesan baru.SingleEmailMessage[] {semail});
    }
    
    public void sendAccountCases(){
        et = [pilih Id, Nama dari EmailTemplate dimana DeveloperName = 'Account_s_Cases'];
        Messaging.SingleEmailMessage semail = Messaging baru.SingleEmailMessage ();
        semail.setTargetObjectId('00335672305cwjF');
        semail.setTemplateId(et.Id);
        semail.setWhatId('00123400006azlA');
        Messaging.sendEmail(Pesan baru.SingleEmailMessage[] {semail});
    }
    
    public void sendFeeDetails(){
        et = [pilih Id, Nama dari EmailTemplate dimana DeveloperName = 'Student_Fees_Info'];
        Messaging.SingleEmailMessage semail = Messaging baru.SingleEmailMessage ();
        semail.setTargetObjectId('00335672305cwjF');
        semail.setTemplateId(et.Id);
        semail.setWhatId('a002320080DGNjx');
        Messaging.sendEmail(Pesan baru.SingleEmailMessage[] {semail});        
    }
}

Kami harap blog ini membantu Anda mempelajari cara menggunakan template email Visualforce di Salesforce. Jika Anda memerlukan layanan pengembangan tenaga penjualan, hubungi tim konsultan tenaga penjualan kami.