Salesforce 在VisualForce中访问电子邮件模板

Salesforce 在VisualForce中访问电子邮件模板,salesforce,apex-code,Salesforce,Apex Code,嗨,我创建了一个对象,其中一个字段是查找用户,另一个字段是电子邮件模板的id。 我必须创建一个visualforce页面,在其中我必须为不同的用户分配不同的电子邮件模板,然后保存自定义对象的记录。你能告诉我如何在VF页面的选择列表中获取MyTemplates中创建的所有电子邮件模板名称和id吗 public class TemplateSelectorController { public String selectedTemplateId { public get; public s

嗨,我创建了一个对象,其中一个字段是查找用户,另一个字段是电子邮件模板的id。 我必须创建一个visualforce页面,在其中我必须为不同的用户分配不同的电子邮件模板,然后保存自定义对象的记录。你能告诉我如何在VF页面的选择列表中获取MyTemplates中创建的所有电子邮件模板名称和id吗

public class TemplateSelectorController {

    public String selectedTemplateId { public get; public set; }

    public List<SelectOption> getMyPersonalTemplateOptions() {
        List<SelectOption> options = new List<SelectOption>();
        for (EmailTemplate t : [
            select Id,Name 
            from EmailTemplate
            // Each User has a 'My Personal Templates' folder
            // of EmailTemplates, whose Id is the User's Id
            where FolderId = :UserInfo.getUserId()
        ]) {
            options.add(new SelectOption(t.Id,t.Name));
        }
        return options;
    }
}     
公共类模板选择器或控制器{
公共字符串selectedTemplateId{public get;public set;}
公共列表getMyPersonalTemplateOptions(){
列表选项=新列表();
对于(EmailT:[
选择Id、名称
从EmailTemplate
//每个用户都有一个“我的个人模板”文件夹
//的EmailTemplates,其Id为用户的Id
其中FolderId=:UserInfo.getUserId()
]) {
添加(新的SelectOption(t.Id,t.Name));
}
返回选项;
}
}     
视觉力页

<apex:page controller="TemplateSelectorController">
     <apex:form>
         <apex:selectList value="{!selectedTemplateId}">
             <apex:selectOptions value="{!myPersonalTemplateOptions}"/>
         </apex:selectList>
     </apex:form>
</apex:page>


这回答了你的问题吗?@Zachellath:我不在你定义文件夹名的地方,因为假设我有文件夹名Lead 360 thn如何才能拉模板,以及在vf页面中你提到这一点,但在课堂上我没有得到它。@Deepakmahajan,在这种情况下,将你的“where”子句更改为“where folder.name=‘Lead 360’”这样您就可以从所需的文件夹中提取EmailTemplates。