/// <summary> /// Sends the outgoing. /// </summary> /// <param name="IncidentId">The incident id.</param> /// <param name="email">The email.</param> /// <returns></returns> //public static ArrayList SendOutgoing(int IncidentId, EMailOutgoingMessage email) //{ // ArrayList retVal = new ArrayList(); // // TODO: Not implemented yet // return retVal; //} /// <summary> /// Sends the outgoing. /// </summary> /// <param name="IncidentId">The incident id.</param> /// <returns></returns> // public static ArrayList SendOutgoing(int IncidentId, int ThreadNodeId) // { // // 2007-02-15: OZ: New Messagew Addon // Issue2.SetNewMessage(IncidentId, false); // // // ArrayList retVal = new ArrayList(); // IncidentBox incidentBox = IncidentBox.Load( Incident.GetIncidentBox(IncidentId)); // bool AllowEMailRouting = true; // EMailRouterIncidentBoxBlock settings = IncidentBoxDocument.Load(incidentBox.IncidentBoxId).EMailRouterBlock; // if(!settings.AllowEMailRouting) // AllowEMailRouting = false; // EMailRouterPop3Box internalPop3Box = EMailRouterPop3Box.ListInternal(); // if(internalPop3Box==null) // AllowEMailRouting = false; // EMailRouterPop3Box pop3Box = internalPop3Box; // BaseIbnContainer foContainer = BaseIbnContainer.Create("FileLibrary",string.Format("IncidentId_{0}",IncidentId)); // ForumStorage forumStorage = (ForumStorage)foContainer.LoadControl("ForumStorage"); // ForumThreadNodeInfo node = forumStorage.GetForumThreadNode(ThreadNodeId); // BaseIbnContainer fsContainer = BaseIbnContainer.Create("FileLibrary",string.Format("ForumNodeId_{0}",node.Id)); // FileStorage fileStorage = (FileStorage)fsContainer.LoadControl("FileStorage"); // string IncidentTitle = Incident.GetIncidentTitle(IncidentId); // string IncidentTicket = TicketUidUtil.Create(incidentBox.IdentifierMask,IncidentId); // string subject; // if(incidentBox.Document.GeneralBlock.AllowOutgoingEmailFormat) // { // StringBuilder sb = new StringBuilder(incidentBox.Document.GeneralBlock.OutgoingEmailFormatSubject,4096); // sb.Replace("[=Title=]", IncidentTitle); // sb.Replace("[=Ticket=]", IncidentTicket); // sb.Replace("[=Text=]", node.Text); // sb.Replace("[=FirstName=]", Security.CurrentUser.FirstName); // sb.Replace("[=LastName=]", Security.CurrentUser.LastName); // subject = sb.ToString(); // } // else // { // subject = string.Format("RE: [{0}] {1}", // IncidentTicket, // IncidentTitle); // } // // Create Pop3 Message Stream // MemoryStream emlMessage = new MemoryStream(); // byte[] tmpBuffer = null; // #region Fill Pop3 Message Stream // // Create Pop3 Message Headers // StringBuilder sbHeaders = new StringBuilder(); // sbHeaders.AppendFormat("Date: {0}", GetEMailCreationDate()).Append("\r\n"); // sbHeaders.Append("From: [email protected]").Append("\r\n"); // sbHeaders.Append("To: [email protected]").Append("\r\n"); // sbHeaders.AppendFormat("Subject: {0}", Rfc822HeaderCollection.Encode2AsciiString(subject)).Append("\r\n"); // sbHeaders.Append("MIME-Version: 1.0").Append("\r\n"); // sbHeaders.Append("Content-Type: multipart/mixed; boundary=\"----------7E143249668A83E\"").Append("\r\n"); // sbHeaders.Append("\r\n"); // tmpBuffer = Encoding.ASCII.GetBytes(sbHeaders.ToString()); // emlMessage.Write(tmpBuffer,0, tmpBuffer.Length); // // Create Pop3 Message Entry // StringBuilder sbMessage = new StringBuilder(); // sbMessage.Append("------------7E143249668A83E").Append("\r\n"); // // IF MESSAGE IS PLAIN TEXT // //sbMessage.Append("Content-Type: text/plain; charset=utf-8").Append("\r\n"); // // IF MESSAGE IS HTML TEXT // sbMessage.Append("Content-Type: text/html; charset=utf-8").Append("\r\n"); // sbMessage.Append("Content-Transfer-Encoding: base64").Append("\r\n"); // sbMessage.Append("\r\n"); // string FullMessage; //// if(incidentBox.Document.GeneralBlock.AllowOutgoingEmailFormat) //// { //// StringBuilder sb = new StringBuilder(incidentBox.Document.GeneralBlock.OutgoingEmailFormatBody,4096); //// //// sb.Replace("[=Title=]", IncidentTitle); //// sb.Replace("[=Ticket=]", IncidentTicket); //// sb.Replace("[=Text=]", node.Text); //// sb.Replace("[=FirstName=]", Security.CurrentUser.FirstName); //// sb.Replace("[=LastName=]", Security.CurrentUser.LastName); //// //// FullMessage = sb.ToString(); //// } //// else //// { // FullMessage = node.Text; //// } // sbMessage.Append(Convert.ToBase64String(Encoding.UTF8.GetBytes(FullMessage))).Append("\r\n"); // tmpBuffer = Encoding.ASCII.GetBytes(sbMessage.ToString()); // emlMessage.Write(tmpBuffer,0, tmpBuffer.Length); // Hashtable contentTypeHash = new Hashtable(); // using(IDataReader reader = ContentType.GetListContentTypes()) // { // while(reader.Read()) // { // contentTypeHash.Add(((string)reader["Extension"]).ToLower(), (string)reader["ContentTypeString"]); // } // } // // Add Pop3 Message Attachements // foreach(Mediachase.IBN.Business.ControlSystem.FileInfo fileInfo in fileStorage.GetFiles()) // { // StringBuilder sbFile = new StringBuilder(); // sbFile.Append("------------7E143249668A83E").Append("\r\n"); // sbFile.AppendFormat("Content-Type: {0}; name=\"{1}\"", fileInfo.FileBinaryContentType, Rfc822HeaderCollection.Encode2AsciiString(fileInfo.Name)).Append("\r\n"); // sbFile.Append("Content-Transfer-Encoding: base64").Append("\r\n"); // sbFile.AppendFormat("Content-Disposition: attachment; filename=\"{0}\"", Rfc822HeaderCollection.Encode2AsciiString(fileInfo.Name)).Append("\r\n"); // sbFile.Append("\r\n"); // using(MemoryStream fs = new MemoryStream()) // { // FileStorage.LightLoadFile(fileInfo, fs); // fs.Capacity = (int)fs.Length; // sbFile.Append(Convert.ToBase64String(fs.GetBuffer())); // } // sbFile.Append("\r\n"); // tmpBuffer = Encoding.ASCII.GetBytes(sbFile.ToString()); // emlMessage.Write(tmpBuffer,0, tmpBuffer.Length); // } // // Add Final Line // tmpBuffer = Encoding.ASCII.GetBytes("------------7E143249668A83E--\r\n\r\n"); // emlMessage.Write(tmpBuffer,0, tmpBuffer.Length); // #endregion // Pop3Message InMsg = new Pop3Message(emlMessage); // // Send Email // #region Internal -> Internal Info // // Internal -> Internal Info // if(AllowEMailRouting) // { // // 2007-02-12 OZ: "FN LN" <*****@*****.**> // string FromEmail = string.Format("\"{0} {1}\" <{2}>", // Security.CurrentUser.FirstName, // Security.CurrentUser.LastName, // pop3Box.EMailAddress); // OutputMessageCreator output2Iternal = new OutputMessageCreator(InMsg, IncidentId, pop3Box.EMailAddress, FromEmail); // // Exclude a message sender // output2Iternal.AddIgnoreRecipient(EMailMessage.GetSenderEmail(InMsg)); // // Load InternalUser // foreach(int UserId in GetInternalUsersByIncidentId(IncidentId)) // { // output2Iternal.AddRecipient(UserId); // retVal.Add(UserId); // } // foreach(OutputMessage outputMsg in output2Iternal.Create()) // { // try // { // SmtpClient.SendMessage(outputMsg.MailFrom, outputMsg.RcptTo, outputMsg.Subject, outputMsg.Data); // } // catch(Exception ex) // { // System.Diagnostics.Trace.WriteLine(ex); // Log.WriteError(ex.ToString()); // } // } // } // #endregion // #region Internal -> Extrenal // // Internal -> Extrenal // string fromEMailAddress = FindEMailRouterPublicEmail(IncidentId); // if(fromEMailAddress!=string.Empty) // { // //EMailRouterPop3Box externalPop3Box = EMailRouterPop3Box.Load(realEMailBoxId); // OutputMessageCreator output2External = new OutputMessageCreator(InMsg, IncidentId, fromEMailAddress, fromEMailAddress); // // Load External Senders // //foreach(string exRecipient in EMailMessage.GetExternalSendersByIncidentId(IncidentId)) // // 2006-12-12 OZ: Load External Senders // foreach(EMailIssueExternalRecipient exRecipient in EMailIssueExternalRecipient.List(IncidentId)) // { // output2External.AddRecipient(exRecipient.EMail); // } // foreach(OutputMessage outputMsg in output2External.Create()) // { // try // { // SmtpClient.SendMessage(outputMsg.MailFrom, outputMsg.RcptTo, outputMsg.Subject, outputMsg.Data); // } // catch(Exception ex) // { // System.Diagnostics.Trace.WriteLine(ex); // Log.WriteError(ex.ToString()); // } // } // } // #endregion // return retVal; // } public static string FindEMailRouterPublicEmail(int IncidentId) { int realEMailBoxId = EMailMessage.GetEMailRouterPop3BoxIdByIssueId(IncidentId); if (realEMailBoxId == -1) { EMailRouterPop3Box[] emailBoxList = EMailRouterPop3Box.ListExternal(); // OZ 2009-01-20 Find EmailBox mapped with IncidentBox int incidentBoxId = Incident.GetIncidentBox(IncidentId); foreach (EMailRouterPop3Box emailBox in emailBoxList) { if (emailBox.Settings.DefaultEMailIncidentMappingBlock.IncidentBoxId == incidentBoxId) { return(emailBox.EMailAddress); } } // // try to find active foreach (EMailRouterPop3Box emailBox in emailBoxList) { if (emailBox.Activity.IsActive) { return(emailBox.EMailAddress); } } if (emailBoxList.Length > 0) { return(emailBoxList[0].EMailAddress); } if (Security.CurrentUser != null) { return(Security.CurrentUser.Email); } return(Alerts2.AlertSenderEmail); } else { EMailRouterPop3Box emailBox = EMailRouterPop3Box.Load(realEMailBoxId); return(emailBox.EMailAddress); } }
/// <summary> /// Finds the E mail router public id. /// </summary> /// <param name="IncidentId">The incident id.</param> /// <returns></returns> public static int FindEMailRouterPublicId(int IncidentId) { int realEMailBoxId = EMailMessage.GetEMailRouterPop3BoxIdByIssueId(IncidentId); if (realEMailBoxId == -1) { EMailRouterPop3Box[] emailBoxList = EMailRouterPop3Box.ListExternal(); // OZ 2009-01-20 Find EmailBox mapped with IncidentBox int incidentBoxId = Incident.GetIncidentBox(IncidentId); foreach (EMailRouterPop3Box emailBox in emailBoxList) { if (emailBox.Settings.DefaultEMailIncidentMappingBlock.IncidentBoxId == incidentBoxId) { return(emailBox.EMailRouterPop3BoxId); } } // // try to find firt active foreach (EMailRouterPop3Box emailBox in emailBoxList) { if (emailBox.Activity.IsActive) { return(emailBox.EMailRouterPop3BoxId); } } // if (emailBoxList.Length > 0) { return(emailBoxList[0].EMailRouterPop3BoxId); } return(-1); } else { return(realEMailBoxId); } }