我正在Visualforce中开发一个网站,并希望为用户提供一个简单的表单,通过电子邮件向我发送反馈。会有3-4个字段,如姓名、用户的电子邮件、原因和反馈以及"发送"按钮。单击"发送"按钮会自动将该消息发送到我的电子邮件地址。
至少目前我不想将表单数据存储在salesforce中。。。我在网上找到的所有关于visualforce/apex和电子邮件的东西都是关于将数据保存到salesforce的。
我可以利用apex的电子邮件功能发送电子邮件而不将数据存储在salesforce中的任何位置吗?
谢谢,Calvin
在VisualForce页面上执行操作时,不需要在数据库中插入/更新/删除任何记录。您可以利用"出站电子邮件"功能发送通知。对于这样的事情,您可能需要熟悉SingleEmailMessage方法。
一个简单的例子:
public PageReference actionSend() {
String[] recipients = new String[]{'myemailaddress@somedomain.com'};
Messaging.reserveSingleEmailCapacity(recipients.size());
Messaging.SingleEmailMessage msg = new Messaging.SingleEmailMessage();
msg.setToAddresses(recipients);
msg.setSubject('Test Email Subject');
msg.setHtmlBody('Test body including HTML markup');
msg.setPlainTextBody('Test body excluding HTML markup');
msg.setSaveAsActivity(false);
msg.setUseSignature(false);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {msg}, false);
return null;
}
如果你有兴趣从专用的电子邮件地址发送这些出站消息(比如noreply@somecompany.com),可以通过设置->管理设置->电子邮件管理->组织范围地址菜单进行设置。创建了一个组织范围的地址后,从URL中获取Id,并在Messaging.SingleEmailMessage
的实例上使用setOrgWideEmailAddressId(Id)
方法。