Отправка элемента формы с помощью кода, не вызывающего уведомления по электронной почте - PullRequest
0 голосов
/ 11 мая 2019

Я пытаюсь отправить новый элемент формы через API в моем веб-приложении MVC (получил код из вкладки кода формы), но уведомление по электронной почте не работает. Это создало новую запись, за исключением оповещения по электронной почте. Я проверил очередь электронной почты, но нет записей элемента формы. Я правильно настроил настройки сервера smtp. Я также проверил журналы событий, но не вижу никаких ошибок. Я что-то упустил или эта функция только на движке портала?

enter image description here

1 Ответ

0 голосов
/ 13 мая 2019

Очевидно, что если мы отправим форму вручную с помощью кода и не используем стандартные виджеты mvc-формы, это не вызовет уведомление автоматически.Нам также необходимо отправить уведомления с помощью кода. форма данных документации

// 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();
}
...