Подмена темы в email сообщениях из Обращений

Добрый день!

При выборе шаблона email сообщения, в Обращении, заполняется тема из указанного шаблона, но при отправке подставляется  номер и тема из Обращения 

После выбора шаблона тема: "SR00540466 Проверка технической возможности, Київська обл,Київ,вул"

При отправке тема: "Re: SR00540466 Новое включение Включение"

Просьба подсказать как исправить

Нравится

2 комментария

Юрий, это не ошибка, это так специально. Ещё с 7.10:

Уведомления по обращению содержат тему из исходного письма, по которому зарегистрировано обращение. Это позволит заявителю отследить историю писем по обращению. Если обращение регистрируется по другим каналам (например, по звонку), то в поле [Тема] уведомлений указывается тема из шаблона письма.

Чтобы поменять, смотрите логику в схеме EmailWithMacrosManager, там в SendEmail и её аналогах вызывают функции, заполняющие заголовок:

/// <summary>
/// Builds an e-mail activity then sends it.
/// The sender and recipients will be obtained automatically.
/// Use this method to reply to all the participants of the parent (root) e-mail activity.
/// </summary>
/// <param name="caseId">Case record identifier.</param>
/// <param name="tplId">Template record identifier.</param>
public virtual void SendEmail(Guid caseId, Guid tplId) {
	Activity activity = CreateActivity();
	PreProcess(activity, caseId, tplId);
	CaseData data = GetCaseData(caseId);
	activity.Sender = GetSender(data);
	FillActivityWithCaseData(activity, data);
	FillTitle(activity, caseId, tplId);
	activity.Save();
	SendActivity(activity.Id);
}
...
/// <summary>
/// Fills an <paramref name="activity"/> with given <paramref name="data"/>.
/// </summary>
/// <param name="activity">Activity entity.</param>
/// <param name="data">Case data.</param>
protected virtual void FillActivityWithCaseData(Activity activity, CaseData data) {
	activity.Title = data.Title;
	activity.Recepient = data.Recipient;
	activity.CopyRecepient = data.CC;
	activity.BlindCopyRecepient = data.BCC;
	if (data.ParentActivityInReplyTo.IsNotNullOrEmpty()) {
		activity.HeaderProperties = AddInReplyToHeaderProperty(data.ParentActivityInReplyTo, activity.HeaderProperties);
	}
}
...
/// <summary>
/// Sets activity title as a subject from e-mail template if it is not specified yet.
/// Otherwise, adds a replying prefix (<see cref="ReplyingPrefix" />)
/// to an <paramref name="activity"/>'s title.
/// </summary>
/// <param name="activity">Activity entity.</param>
/// <param name="caseId">Case record identifier.</param>
/// <param name="tplId">Template record identifier.</param>
protected void FillTitle(Activity activity, Guid caseId, Guid tplId) {
	var title = activity.Title;
	activity.Title = title.IsNullOrEmpty()
		? GetTemplateSubject(SchemaName, caseId, tplId)
		: ApplyPrefix(title);
}

Видимо, Вам нужно переделать, чтобы всегда брался только GetTemplateSubject, а не тема из обращения с добавлением в начале префикса «Re:».

Александр, спасибо, пошли править, отпишусь

Показать все комментарии