0

我在 Visualforce apex:pageBlockTable 中有一个电子邮件列表,并希望使这些电子邮件适合特定的电子邮件模板,并用我单击的电子邮件填充收件人:字段,有什么办法吗?

4

2 回答 2

1

回答我的理解:逻辑 - 您需要将参数从您的 visualforce 页面传递到控制器/扩展,以便它知道要使用哪个模板(如果有多个模板)。这可以通过单选按钮来实现。

根据发送电子邮件部分,只需通过 getter 和 setter 将包含电子邮件的列的值传递给 apex 类。将这些电子邮件存储在一个数组中,使用 sendEmail 方法将电子邮件发送到电子邮件数组。

示例代码:

//VF page: //因此,如果您的电子邮件在 pageBlockTable 中,则代码必须类似于:

//Apex Class:
public class Test{
    List <Email__c> listEmail = [Select Email__c from Email__c];
    String[] toAddresses = new String[] {};
    public list<Email__c> getList() {        
        return listEmail;
    }

    public Test(){
        for(integer i =0; i < listEmail.size(); i++){
            toAddresses.add(listEmail[i].Email__c);
        } 
    }

    public void  SendEmail(){
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        //pass the address list
        mail.setToAddresses(toAddresses);
        //set the templateID
         mail.setTemplateID('');
        //set other fields (like SenderName, ReplyTo, Signature) -     http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_email_outbound_base.htm 
        //send the email
        mail.sendEmail();
    }
} 

请让我知道这是否适合您!

干杯

于 2012-11-14T16:10:53.970 回答
0

您是否需要能够事先编辑电子邮件?如果不是,您可以使用命令链接调用发送 SingleEmailMessage 的方法

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_email_outbound_single.htm

并从那里设置模板...

于 2012-10-31T03:35:45.750 回答