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'));
}
}