/// <summary> /// SendPackageRequest to PackageService for deliver to dispatcher. /// </summary> public SendPackageResult SendPackage(Mail mailItem, MailBox mailBox) { LogManager.LogTrace("SE.GOV.MM.Integration.Outlook.Service.MessageService: incoming SendPackage"); var request = new SendPackageRequest() { Mail = mailItem, MailBox = mailBox }; var result = new SendPackageResult() { MessageSent = true, Recipient = mailItem.Recipient.To }; ServiceClient <IPackage> client = null; try { client = new ServiceClient <IPackage>("WSHttpBinding_IPackage"); //client = new ServiceClient<IPackage>("BasicHttpBinding_IPackage"); var response = client.Proxy.SendPackage(request); result.DeliveryStatus = response.DeliveryStatus; result.RequestId = response.RequestId; result.DistributionId = response.DistributionId; } catch (CommunicationException ce) { client.Abort(); result.MessageSent = false; LogManager.Log(new Log.Log() { Exception = ce, Message = "SE.GOV.MM.Integration.Outlook.Service.PackageService: CommunicationException error sending package to PackageService.", EventId = EventId.CommunicationExceptionWithPackage, Level = Level.Error }); } catch (Exception ex) { client.Abort(); result.MessageSent = false; LogManager.Log(new Log.Log() { Exception = ex, Message = "SE.GOV.MM.Integration.Outlook.Service.PackageService: Exception error sending package to PackageService.", EventId = EventId.CommunicationExceptionWithPackage, Level = Level.Error }); } finally { if (client.State == CommunicationState.Faulted) { client.Abort(); } client = null; } LogManager.LogTrace("SE.GOV.MM.Integration.Outlook.Service.PackageService: leaving SendPackage"); return(result); }
/// <summary> /// Sends mail to Mina meddeladen /// </summary> /// <param name="Cancel"></param> /// <param name="result"></param> /// <returns></returns> public SendPackageResult SendMailToPackage(Mail mail) { SendPackageResult sentMessageResult = new SendPackageResult(); //Check if reachable var result = IsReachable(mail.Recipient.To); if (result != null) { //Send mail to Mina meddelanden sentMessageResult = sendMailToMinaMeddelanden(mail, result); } return(sentMessageResult); }
/// <summary> /// Sends mail to Mina meddelanden, uses a configuration property in ConfigurationService if mail should go through a dispatcher or directly to the mailbox. /// </summary> /// <param name="mailHelper"></param> /// <param name="isReachableResult"></param> /// <returns></returns> private SendPackageResult sendMessage(Mail mailItem, IsReachableResult isReachableResult) { var mailHelper = new MailHelper(); var mailBox = mailHelper.GetMailBoxFromIsReachableResult(isReachableResult); var messageService = new PackageService(); SendPackageResult result = null; if (ConfigHelper.ConfigurationEntity.UseExternalDispatcher) { result = messageService.SendPackage(mailItem, mailBox); } else { result = messageService.SendPackageToMailBox(mailItem, mailBox); } return(result); }
/// <summary> /// Sends mail to Mina meddeladen /// </summary> /// <param name="Cancel"></param> /// <param name="result"></param> /// <returns></returns> public SendPackageResult SendMailToPackage(Mail mail) { SendPackageResult sentMessageResult = new SendPackageResult(); //Check if reachable var result = IsReachable(mail.Recipient.To, mail.SenderOrgNumber); if (result != null && result.IsReachable != false) { // Send mail to Mina meddelanden sentMessageResult = sendMailToMinaMeddelanden(mail, result); } else { sentMessageResult.DeliveryStatus = "Not Deliverd"; sentMessageResult.Recipient = mail.Recipient.ToString(); } return(sentMessageResult); }