Modelli di posta elettronica Visualforce in Salesforce

Pubblicato: 2021-05-13

Con i modelli e-mail Visualforce, gli utenti possono inviare e-mail mirate e personalizzate. I creatori di modelli possono sfruttare il potente linguaggio di programmazione Visualforce per creare contenuti e-mail basati su modelli.

Gli sviluppatori e gli amministratori possono utilizzare Visualforce per creare modelli di posta elettronica. Il vantaggio dell'utilizzo di Visualforce rispetto ai modelli di e-mail HTML standard è che Visualforce offre la possibilità di eseguire operazioni avanzate sui dati inviati a un destinatario.

Tutti i modelli di email Visualforce devono essere contenuti in un singolo tag <messaging:emailTemplate>. Ciò è analogo alle normali pagine Visualforce definite all'interno di un singolo tag <apex:page>.

  • Il tag <messaging:emailTemplate> deve contenere un singolo tag <messaging:htmlEmailBody> o un singolo tag <messaging:plainTextEmailBody>.
  • Diversi componenti Visualforce standard non sono disponibili per l'uso in <messaging:emailTemplate>. Questi includono <apex:detail>,<apex:pageBlock> e tutti i relativi componenti pageBlock e tutti i componenti di input come <apex:form>. Se si tenta di salvare un modello e-mail Visualforce con questi componenti, viene visualizzato un messaggio di errore.

Effettuare una delle seguenti operazioni:

  • Se si dispone dell'autorizzazione per modificare i modelli pubblici, da Imposta, immettere Modelli e-mail nella casella Ricerca veloce, quindi selezionare Modelli e-mail classici.
  • Se non disponi dell'autorizzazione per modificare i modelli pubblici, vai alle impostazioni personali. Inserisci Modelli nella casella Ricerca veloce, quindi seleziona Modelli email o I miei modelli, a seconda di quale dei due appare.
  • 1. Fare clic su Nuovo modello.
  • 2. Scegliere Visualforce e fare clic su Avanti.
  • 3. Non è possibile inviare un'e-mail di massa utilizzando un modello di e-mail Visualforce.
  • 4. Scegli una cartella in cui archiviare il modello.
  • 5. Per rendere il modello disponibile per l'uso, selezionare la casella di controllo Disponibile per l'uso.
  • 6. Immettere un nome in Nome modello email.
  • 7. Se necessario, modificare il nome univoco del modello. Questo nome univoco si riferisce al componente quando si utilizza l'API Lightning Platform. Nei pacchetti gestiti, questo nome univoco impedisce i conflitti di denominazione nelle installazioni dei pacchetti. Questo nome può contenere solo trattini bassi e caratteri alfanumerici e deve essere univoco nell'organizzazione. Deve iniziare con una lettera, non includere spazi, non terminare con un carattere di sottolineatura e non contenere due caratteri di sottolineatura consecutivi. Con il campo Nome univoco modello, è possibile modificare i nomi di determinati componenti in un pacchetto gestito e le modifiche si riflettono nell'organizzazione di un abbonato.
  • 8. Se lo si desidera, scegliere un set di caratteri diverso dall'elenco a discesa Codifica.
  • 9. Immettere una descrizione per il modello. Sia il nome del modello che la descrizione sono solo per uso interno.
  • 10. Immettere una riga dell'oggetto per il modello in Oggetto e-mail.
  • 11. Nell'elenco a discesa Tipo destinatario, selezionare il tipo di destinatario a cui ricevere l'e-mail creata dal modello.
  • 12. Se lo si desidera, nell'elenco a discesa Correlato a tipo, selezionare l'oggetto da cui il modello recupera i dati del campo di unione.
  • 13. Fare clic su Salva.
  • 14. Nella pagina Visualizza e modifica modelli e-mail in Salesforce Classic, fare clic su Modifica modello.
  • 15. Immettere il testo di markup per il modello e-mail Visualforce.

NOTA: se stai includendo un'immagine, ti consigliamo di caricarla nella scheda Documenti per fare riferimento alla copia dell'immagine sul nostro server. Per esempio:

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

  • 1. Per specificare la versione di Visualforce e l'API utilizzata con questo modello di email, fare clic su Impostazioni versione. Se hai installato pacchetti gestiti da AppExchange, puoi anche specificare quale versione di ciascun pacchetto gestito utilizzare con questo modello di email. In genere, utilizzare il valore predefinito per tutte le versioni per associare il modello e-mail alla versione più recente di Visualforce, all'API ea ciascun pacchetto gestito. Per mantenere un comportamento specifico, è possibile specificare una versione precedente di Visualforce e dell'API. Per accedere a componenti o funzionalità che differiscono dalla versione del pacchetto più recente, è possibile specificare una versione precedente di un pacchetto gestito.
  • 2. Per visualizzare i dettagli del modello, fare clic su Salva. Per continuare a modificare il modello, fai clic su Salvataggio rapido. Il markup Visualforce deve essere valido prima di poter salvare il modello.
assumere sviluppatori della forza vendita

/********************* Modello di posta elettronica 1 ***********/
Esempio 1: casi di contatto
Destinatario

 <messaging:emailTemplate subject="Informazioni sull'account e sui casi {!recipient.Name}" recipientType="Contact" >
<messaging:htmlEmailBody >
    <html>
    <testa>
    </head>
    <corpo>
        Gentile {!recipient.Name},<br/>
        Trova tutti i casi aperti:<br/>
        <tabella>
        <tr>
            <th>Numero caso</th>
            <th>Origine del caso</th>
            <th>Stato del caso</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>
        </table>
    </body>
</html>
</messaging:htmlEmailBody>
<messaging:plainTextEmailBody >
Congratulazioni!
Questo è il tuo nuovo modello di email Visualforce.
</messaging:plainTextEmailBody>
</messaging:emailTemplate>

/******************** Modello di posta elettronica 2 ***************/
Esempio 2: casi di account
Destinatario e Relativo a

 <messaging: emailTemplate subject = "Casi account correlati a: {!relatedTo.Name}" recipientType = "Contact" relatedToType = "Account">
<messaging:htmlEmailBody >
    <html>
    <testa>
    </head>
    <corpo>
        Gentile {!relatedTo.Name},<br/>
        Trova tutti i casi aperti:<br/>
        <tabella>
        <tr>
            <th>Numero caso</th>
            <th>Origine del caso</th>
            <th>Stato del caso</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>
        </table>
    </body>
</html>
</messaging:htmlEmailBody>
<messaging:plainTextEmailBody >
Congratulazioni!
Questo è il tuo nuovo modello di email Visualforce.
</messaging:plainTextEmailBody>
</messaging:emailTemplate>

Esempio 3: dettagli sulle tasse studentesche utilizzando il componente

 <messaging:emailTemplate subject = "Submission Of Student Fees" recipientType = "Contact" relatedToType = "Student__c">
<messaging:htmlEmailBody >
    <c:StudentFeesDetails stu></c:StudentFeesDetails>
</messaging:htmlEmailBody>
<messaging:plainTextEmailBody >
Congratulazioni!
Questo è il tuo nuovo modello di email Visualforce.
</messaging:plainTextEmailBody>
</messaging:emailTemplate>

/*************** Modelli e-mail finali ***********/

/******************* Componente ******************/

 <apex:component controller="StudentFeesController" access="global">
    <Stile>
    tabella{bordo:1px solido #000;}
        td,th {bordo: 1px solido #000}
    </style>
    <apex:attribute name="stuId"assignTo="{!studentId}" type="Id" description="Student Id" />
    <h1>Le tue commissioni vengono trattate</h1>
    <tabella >
    <tr>
        <th>Data</th>
        <th>Importo</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>
    </table>
</apex:component>

/************** Classe ******************/

 classe pubblica StudentFeesController{
    ID pubblico ID studente {get;set;}
    public List<Commissioni__c> getFeesDetails(){
        return [seleziona id, importo__c, data__c da tasse__c dove student_Id__c =: studentId];
    }
}

/******************* Pagina **********************/

 <apex:page controller="SendVFEmailTemplateController">
    <apice:forma>
        <apex:pageBlock>
            <apex:pageBlockButtons>
                <apex:commandButton value="Send Contact Cases" action="{!sendCases}"/>
                <apex:commandButton value="Invia casi account" action="{!sendAccountCases}"/>
                <apex:commandButton value="Invia dettagli commissioni" action="{!sendFeeDetails}"/>
                
            </apex:pageBlockButtons>
        </apex:pageBlock>
    </apex:form>
</apex:page>

/******************* Classe ********************/

 classe pubblica SendVFEmailTemplateController{
    EmailModello et;
    pubblico SendVFEmailTemplateController(){
    
    }
    
    public void sendCases(){
        et = [seleziona Id, Nome da EmailTemplate dove 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 = [seleziona Id, Nome da EmailTemplate dove 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 = [seleziona ID, nome da EmailTemplate dove DeveloperName = 'Student_Fees_Info'];
        Messaging.SingleEmailMessage semail = new Messaging.SingleEmailMessage ();
        semail.setTargetObjectId('00335672305cwjF');
        semail.setTemplateId(et.Id);
        semail.setWhatId('a002320080DGNjx');
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] {semail});        
    }
}

Ci auguriamo che questo blog ti abbia aiutato nell'apprendimento dell'uso dei modelli di email Visualforce in Salesforce. Se hai bisogno di servizi di sviluppo della forza vendita, contatta il nostro team di consulenza della forza vendita.