/// <summary> /// send single email /// </summary> /// <param name="dialogueSetting">Dialogue setting, such as database Id, workspaceId</param> /// <param name="directEmail">parameters related with direct email, such as subject, fromaddress</param> /// <param name="ContactInfos">parameters related with contact information, such as email Id.</param> /// <returns></returns> public String sendSingleEmail(DialogueSetting dialogueSetting, DirectEmail directEmail, TripolisDialogueAdapter.BO.KeyValuePair[] ContactInfos) { logger.Debug(System.Environment.NewLine + "Begin sending Single Email."); String result = "OK"; try { String contactDatabaseId = dialogueSetting.contactDatabaseId; String workspaceId = dialogueSetting.workspaceId; String emailTypeId = dialogueSetting.emailTypeId; String directEmailId = dialogueSetting.directEmailId; //查找<A的html标记,如果里面没有title属性,则增加这个属性. directEmail.htmlContent = Util.addTitleInAFlagHtml(directEmail.htmlContent); cn.tripolis.dialogue.subscription.subscribeContactRequest request = new cn.tripolis.dialogue.subscription.subscribeContactRequest(); request.contactDatabase = new cn.tripolis.dialogue.subscription.IdNameModel(); request.contactDatabase.id = contactDatabaseId; request.workspace = new cn.tripolis.dialogue.subscription.IdNameModel(); request.workspace.id = workspaceId; request.contactFields = new cn.tripolis.dialogue.subscription.ContactFieldValue[ContactInfos.Length]; cn.tripolis.dialogue.subscription.ContactFieldValue contactFieldValue; int i = 0; foreach (TripolisDialogueAdapter.BO.KeyValuePair keyValuePair in ContactInfos) { contactFieldValue = new cn.tripolis.dialogue.subscription.ContactFieldValue(); contactFieldValue.name = keyValuePair.key; contactFieldValue.value = keyValuePair.value; request.contactFields.SetValue(contactFieldValue, i++); } request.ip = "127.0.0.1"; cn.tripolis.dialogue.subscription.IDResponse response = subscriptionService.subscribeContact(request); String contactId = response.id; DirectEmailAction directEmailAction = new DirectEmailAction(client, userName, password, oWebProxy); directEmailId = directEmailAction.createDirectEmail(emailTypeId, directEmail.emailLabel, directEmail.emailName, directEmail.subject, directEmail.description, directEmail.fromName, directEmail.fromAddress, directEmail.htmlContent); // directEmailAction.updateDirectEmail(directEmailId, directEmail.subject, directEmail.fromName, directEmail.htmlContent); PublishingAction publishingAction = new PublishingAction(client, userName, password, oWebProxy); String publishId = publishingAction.publishTransactionalEmail(contactId, directEmailId, directEmail.sheduleTime); // SendLogDao dbAccess = new SendLogDao(); // dbAccess.SengLog_InsertInfo(new String[] { emailId, publishId, batchNo }); result = publishId; } catch (System.Web.Services.Protocols.SoapException ex) { result = ex.Message; logger.Debug("error happen in send mail, error is " + result); } catch (Exception ex) { result = ex.Message; logger.Debug("error happen in send mail, error is " + result); // return ex.Message; } logger.Debug("Finish sending Single Email. Publish Id is " + result); return result; }
/// <summary> /// send Register email /// </summary> /// <param name="dialogueSetting">Dialogue setting, such as database Id, workspaceId</param> /// <param name="ContactInfos">parameters related with contact information, such as email Id.</param> /// <returns></returns> public String registerContact(DialogueSetting dialogueSetting, TripolisDialogueAdapter.BO.KeyValuePair[] ContactInfos) { logger.Debug(System.Environment.NewLine + "Begin Register Contact."); String result = "OK"; try { String contactDatabaseId = dialogueSetting.contactDatabaseId; String workspaceId = dialogueSetting.workspaceId; // String emailTypeId = dialogueSetting.emailTypeId; String directEmailId = dialogueSetting.directEmailId; cn.tripolis.dialogue.subscription.subscribeContactRequest request = new cn.tripolis.dialogue.subscription.subscribeContactRequest(); request.contactDatabase = new cn.tripolis.dialogue.subscription.IdNameModel(); request.contactDatabase.id = contactDatabaseId; request.workspace = new cn.tripolis.dialogue.subscription.IdNameModel(); request.workspace.id = workspaceId; request.contactFields = new cn.tripolis.dialogue.subscription.ContactFieldValue[ContactInfos.Length]; cn.tripolis.dialogue.subscription.ContactFieldValue contactFieldValue; int i = 0; foreach (TripolisDialogueAdapter.BO.KeyValuePair keyValuePair in ContactInfos) { contactFieldValue = new cn.tripolis.dialogue.subscription.ContactFieldValue(); contactFieldValue.name = keyValuePair.key; contactFieldValue.value = keyValuePair.value; request.contactFields.SetValue(contactFieldValue, i++); } if (!string.IsNullOrEmpty(directEmailId)) { request.directEmail = new cn.tripolis.dialogue.subscription.IdNameModel(); request.directEmail.id = directEmailId; } request.ip = "127.0.0.1"; cn.tripolis.dialogue.subscription.IDResponse response = subscriptionService.subscribeContact(request); String contactId = response.id; result = contactId; } catch (System.Web.Services.Protocols.SoapException ex) { result = ex.Message; logger.Debug("error happen in send mail, error is " + result); } catch (Exception ex) { result = ex.Message; logger.Debug("error happen in send mail, error is " + result); // return ex.Message; } logger.Debug("Finish register Contact. Contact Id is " + result); return result; }
/// <summary> /// send Single mail /// </summary> /// <param name="contactStr"></param> /// <param name="batchNo"></param> /// <param name="sender"></param> /// <param name="emailSubject"></param> /// <param name="emailBody"></param> /// <returns></returns> public String sendSingleEmail(TripolisConfig tripolisConfig, string contactStr, String batchNo, String sender, String emailSubject, String emailBody) { logger.Debug("************send Single Mail***************"); String result = "OK"; try { String contactDatabaseId = tripolisConfig.contactDatabaseId; String workspaceId = tripolisConfig.workspaceId; String directEmailId = tripolisConfig.directEmailId; String emailId = ""; String EmailFileName = tripolisConfig.emailColName; //const string pattern = "\\{.+?\\}"; //List<string> tempList = Regex.Matches(emailBody, pattern).Cast<Match>().Select(a => a.Value).ToList(); //foreach (string str in tempList) //{ // emailBody = emailBody.Replace(str, str.ToLower()); //} //查找<A的html标记,如果里面没有title属性,则增加这个属性. emailBody = Util.addTitleInAFlagHtml(emailBody); cn.tripolis.dialogue.subscription.subscribeContactRequest request = new cn.tripolis.dialogue.subscription.subscribeContactRequest(); request.contactDatabase = new cn.tripolis.dialogue.subscription.IdNameModel(); request.contactDatabase.id = contactDatabaseId; request.workspace = new cn.tripolis.dialogue.subscription.IdNameModel(); request.workspace.id = workspaceId; String[] arrContact = contactStr.Split(';'); request.contactFields = new cn.tripolis.dialogue.subscription.ContactFieldValue[arrContact.Length]; cn.tripolis.dialogue.subscription.ContactFieldValue contactFieldValue; int i = 0; foreach (String tempContact in arrContact) { String[] arryFiled = tempContact.Split(new[] { "#" }, StringSplitOptions.None); contactFieldValue = new cn.tripolis.dialogue.subscription.ContactFieldValue(); contactFieldValue.name = arryFiled[0].ToLower(); contactFieldValue.value = arryFiled[1]; if (EmailFileName.Equals(contactFieldValue.name, StringComparison.CurrentCultureIgnoreCase)) { emailId = contactFieldValue.value; } request.contactFields.SetValue(contactFieldValue, i++); } //request.directEmail = new cn.tripolis.dialogue.subscription.IdNameModel(); //request.directEmail.id = directEmailId; request.ip = "127.0.0.1"; //request.contactGroupSubscriptions = new cn.tripolis.dialogue.subscription.ContactGroupSubscription[1]; //cn.tripolis.dialogue.subscription.ContactGroupSubscription contactGroupSubscription = new cn.tripolis.dialogue.subscription.ContactGroupSubscription(); //contactGroupSubscription.confirmed = true; //contactGroupSubscription.contactGroup = new cn.tripolis.dialogue.subscription.IdNameModel(); //contactGroupSubscription.contactGroup.id = contactGroupId; //request.contactGroupSubscriptions.SetValue(contactGroupSubscription, 0); cn.tripolis.dialogue.subscription.IDResponse response = subscriptionService.subscribeContact(request); // subscriptionService.Proxy String contactId = response.id; this.updateDirectEmail(directEmailId, emailSubject, sender, emailBody); PublishingAction publishingAction = new PublishingAction(client, userName, password, oWebProxy); String publishId = publishingAction.publishTransactionalEmail(contactId, directEmailId,DateTime.Now); // SendLogDao dbAccess = new SendLogDao(); // dbAccess.SengLog_InsertInfo(new String[] { emailId, publishId, batchNo }); } catch (System.Web.Services.Protocols.SoapException ex) { result = ex.Message; logger.Debug("error happen in send mail, error is " + result); } catch (Exception ex) { result = ex.Message; logger.Debug("error happen in send mail, error is " + result); // return ex.Message; } logger.Debug("************end sendMail ************"); return result; }