private void Initialize() { var messageID = MessageID; if (!string.IsNullOrWhiteSpace(messageID)) { MailPageMessage message = null; message = MailBiz.GetMailMessage(messageID); if (message.MailPageSetting == null) { message.MailPageSetting = new MailPageSetting(); } var key = string.Format(m_SessionKey_MailMessage, messageID); //保存原始的MailMessage到Session中。 Session[key] = message; if (message != null) { HandlePermissions(message); if (message.MailMessage != null) { var mail = message.MailMessage; txtFrom.Text = mail.From; txtTo.Text = mail.To; txtCC.Text = mail.CC; txtBCC.Text = mail.BCC; txtSubject.Text = mail.Subject; txtBody.Text = mail.Body; if (!string.IsNullOrWhiteSpace(mail.TemplateID)) { this.MailCollection = message.MailCollection; ddlTemplates.DataSource = message.MailCollection; ddlTemplates.SelectedValue = mail.TemplateID; ddlTemplates.DataBind(); } var title = string.Format(this.GetLocalResourceObject("LbTitle").ToString(), mail.Subject); this.Title = title; } } } else { ScriptExecute("jAlert('" + this.GetGlobalResourceObject("InfoMessage", "Info_InvalidParameter") + "','" + this.GetLocalResourceObject("Info_Alert_Title") + "', function() { closeWindow(); });"); } }
public string LogMail(MailPageMessage message) { var result = MailBiz.LogMail(message.MailMessage, message.MailPageSetting); if (!string.IsNullOrWhiteSpace(result)) { var key = string.Format(Sessionkey_IsCloseMailPage, result); HttpContext.Current.Session[key] = false; } return(result); }
/// <summary> /// 根据MessageID获取Mail的相关信息和PageSetting的信息 /// </summary> /// <param name="messageID"></param> /// <returns></returns> public static MailPageMessage GetMailMessage(string messageID) { MailPageMessage result = new MailPageMessage(); MailMessage message = null; Parallel.Invoke( () => { message = MailDA.GetMailMessage(messageID); if (message != null) { message.BusinessNumberList = MailDA.GetBusinessNumber(messageID); } }, () => { result.MailPageSetting = MailDA.GetPageSetting(messageID); }); //如果使用模板方式发送邮件,则需要调用London II的服务获取模板内容 if (message != null && !string.IsNullOrWhiteSpace(message.TemplateID)) { var templateIDs = message.TemplateID.Split(','); var collection = new List <MailMessage>(); //并行获取所有TemplateID的内容 Parallel.ForEach(templateIDs, (templateID) => { var msg = SerializationUtility.XmlDeserialize <MailMessage>(SerializationUtility.XmlSerialize(message)); var variable = MailDA.GetTemplateVariable(messageID); msg.MailTemplateVariables = variable; msg.TemplateID = templateID; var query = new GetEmailContentMessageV10(); query.SystemID = msg.SystemID; query.TemplateID = templateID; query.CompanyCode = msg.CompanyCode; query.CountryCode = msg.CountryCode; query.LanguageCode = msg.LanguageCode; var content = MailProvider.London.GetEmailContentByTemplate(query, variable.ToKeyValue()); if (content != null) { msg.From = content.FromName; msg.Subject = content.Subject; msg.Body = content.Body; } lock (s_syncObj) { collection.Add(msg); } }); result.MailCollection = collection; if (collection.Count > 0) { result.MailMessage = collection[0]; } } else { result.MailMessage = message; } return(result); }
private void HandlePermissions(MailPageMessage message) { var setting = message.MailPageSetting; var mail = message.MailMessage; var readOnly = true; var script = new StringBuilder(); var height = 370; if (!string.IsNullOrWhiteSpace(message.MailMessage.TemplateID)) { this.TemplateSelector(true); height -= 26; } else { this.TemplateSelector(false); } if (message.MailCollection != null && message.MailCollection.Count == 1) { this.TemplateSelector(false); } if (!setting.IsAllowSend) { BtnSend.Enabled = false; } if (!setting.IsAllowEdit) { txtFrom.Enabled = false; txtTo.Enabled = false; txtCC.Enabled = false; txtBCC.Enabled = false; txtSubject.Enabled = false; txtBody.ReadOnly = true; readOnly = true; } else { if (!setting.IsAllowChangeMailFrom) { txtFrom.Enabled = false; } if (!setting.IsAllowChangeMailTo) { txtTo.Enabled = false; } if (!setting.IsAllowChangeMailSubject) { txtSubject.Enabled = false; } if (!setting.IsAllowChangeMailBody) { txtBody.ReadOnly = true; readOnly = true; } else { readOnly = false; } } if (!setting.IsAllowAttachment || !setting.IsAllowEdit) { height += 45; script.Append("$('#attachmentContainer').remove();"); } if (!setting.IsAllowCC) { txtCC.Text = string.Empty; height += 26; script.Append("$('#row_CC').remove();"); } if (!setting.IsAllowBCC) { txtBCC.Text = string.Empty; height += 26; script.Append("$('#row_BCC').remove();"); } if (mail.BodyType == MailBodyType.Html) { if (readOnly) { script.Append("init_editor(true, true, " + height + ");"); } else { script.Append("init_editor(true, false, " + height + ");"); } } else { script.Append("init_editor(false, false, " + height + ");"); } if (script.Length > 0) { ScriptExecute(script.ToString()); } }