salesforce获取自定义对象的各个字段内容,并且以表格的形式组装成邮件发送给用户

Apex类

public class CustomObjectEmailService {
    public void sendCustomObjectEmail() {
        // 查询自定义对象的数据
        List<CustomObject__c> customObjects = [SELECT Field1__c, Field2__c, Field3__c FROM CustomObject__c];

        // 生成HTML表格
        String emailBody = '<style>' +
            'table { border-collapse: collapse; width: 100%; }' +
            'th, td { border: 1px solid #ddd; padding: 8px; }' +
            'th { background-color: #f2f2f2; text-align: left; }' +
            'tr:nth-child(even) { background-color: #f9f9f9; }' +
            'tr:hover { background-color: #ddd; }' +
            '</style>';
        
        emailBody += '<table>';
        emailBody += '<tr><th>Field1</th><th>Field2</th><th>Field3</th></tr>';
        
        for (CustomObject__c obj : customObjects) {
            emailBody += '<tr>';
            emailBody += '<td>' + obj.Field1__c + '</td>';
            emailBody += '<td>' + obj.Field2__c + '</td>';
            emailBody += '<td>' + obj.Field3__c + '</td>';
            emailBody += '</tr>';
        }

        emailBody += '</table>';

        // 发送邮件
        Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage();
        email.setToAddresses(new String[] {'user@example.com'});
        email.setSubject('Custom Object Data');
        email.setHtmlBody(emailBody);
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { email });
    }
}

Visualforce页面

<apex:page controller="CustomObjectEmailService">
    <apex:form>
        <apex:commandButton value="Send Email" action="{!sendCustomObjectEmail}" />
    </apex:form>
</apex:page>

测试类

@isTest
public class CustomObjectEmailServiceTest {
    @isTest
    static void testSendCustomObjectEmail() {
        // 创建测试数据
        CustomObject__c testObject = new CustomObject__c(Field1__c='Value1', Field2__c='Value2', Field3__c='Value3');
        insert testObject;
        
        // 调用Apex类的方法
        Test.startTest();
        CustomObjectEmailService service = new CustomObjectEmailService();
        service.sendCustomObjectEmail();
        Test.stopTest();
        
        // 验证结果
        List<Messaging.SingleEmailMessage> emails = [SELECT Id, Subject, HtmlBody FROM EmailMessage];
        System.assertEquals(1, emails.size());
        System.assert(emails[0].HtmlBody.contains('Value1'));
        System.assert(emails[0].HtmlBody.contains('Value2'));
        System.assert(emails[0].HtmlBody.contains('Value3'));
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值