通过代码提交表单项不会触发电子邮件通知
Submitting form item via code not triggering an email notification
我正尝试通过 api 在我的 MVC 网络应用程序(从表单的代码选项卡中获取代码)上提交新的表单项,但电子邮件通知不起作用。它确实创建了一个新记录,除了电子邮件警报。我检查了电子邮件队列,但没有表单项的记录。我正确配置了 smtp 服务器设置。我也检查了事件日志,但没有看到任何错误。我是不是遗漏了什么或者这个功能只在门户引擎上?
显然,如果我们通过代码手动提交表单而不使用默认的 mvc 表单小部件,它不会自动触发通知。我们还需要通过代码发送通知。 form data documentation
// Gets the form object representing the 'ContactUs' form on the current site
BizFormInfo formObject = BizFormInfoProvider.GetBizFormInfo("ContactUs", SiteContext.CurrentSiteID);
if (formObject != null)
{
// Gets the class name of the 'ContactUs' form
DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID);
string formClassName = formClass.ClassName;
// Creates a new data record for the form
BizFormItem newFormItem = BizFormItem.New(formClassName);
// Sets the values for the form's fields (UserMessage in this case)
newFormItem.SetValue("UserMessage", "This is a message submitted through the API.");
// Saves the new form record into the database
// Set values for all 'Required' fields in the form before calling the Insert method, otherwise an exception will occur
newFormItem.Insert();
// Obtains a factory object used to create a form notification sender service for the given form
IBizFormMailSenderFactory senderFactory = Service.Resolve<IBizFormMailSenderFactory>();
// Creates an instance of the form notification sender for the inserted form item
IBizFormMailSender sender = senderFactory.GetFormMailSender(formObject, newFormItem);
// Sends a notification email to users (as specified on the form's 'Email notification' tab)
sender.SendNotificationEmail();
// Sends a confirmation email to the submitter (based on the form's autoresponder settings)
sender.SendConfirmationEmail();
}
我正尝试通过 api 在我的 MVC 网络应用程序(从表单的代码选项卡中获取代码)上提交新的表单项,但电子邮件通知不起作用。它确实创建了一个新记录,除了电子邮件警报。我检查了电子邮件队列,但没有表单项的记录。我正确配置了 smtp 服务器设置。我也检查了事件日志,但没有看到任何错误。我是不是遗漏了什么或者这个功能只在门户引擎上?
显然,如果我们通过代码手动提交表单而不使用默认的 mvc 表单小部件,它不会自动触发通知。我们还需要通过代码发送通知。 form data documentation
// Gets the form object representing the 'ContactUs' form on the current site
BizFormInfo formObject = BizFormInfoProvider.GetBizFormInfo("ContactUs", SiteContext.CurrentSiteID);
if (formObject != null)
{
// Gets the class name of the 'ContactUs' form
DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID);
string formClassName = formClass.ClassName;
// Creates a new data record for the form
BizFormItem newFormItem = BizFormItem.New(formClassName);
// Sets the values for the form's fields (UserMessage in this case)
newFormItem.SetValue("UserMessage", "This is a message submitted through the API.");
// Saves the new form record into the database
// Set values for all 'Required' fields in the form before calling the Insert method, otherwise an exception will occur
newFormItem.Insert();
// Obtains a factory object used to create a form notification sender service for the given form
IBizFormMailSenderFactory senderFactory = Service.Resolve<IBizFormMailSenderFactory>();
// Creates an instance of the form notification sender for the inserted form item
IBizFormMailSender sender = senderFactory.GetFormMailSender(formObject, newFormItem);
// Sends a notification email to users (as specified on the form's 'Email notification' tab)
sender.SendNotificationEmail();
// Sends a confirmation email to the submitter (based on the form's autoresponder settings)
sender.SendConfirmationEmail();
}