public async Task <Response> SendMail(EmailParameters model) { MailSendingModel emailmodel; try { emailmodel = await PrepareEmail(model); } catch (ArgumentNullException ex) { await AddLogInfo(string.Empty, ex.Message); throw new ArgumentNullException(ex.Message, ex); } var msg = MailHelper.CreateSingleEmailToMultipleRecipients(emailmodel.From, emailmodel.To, emailmodel.Subject, emailmodel.PlainTextContent, emailmodel.HtmlContent); var response = await _client.SendEmailAsync(msg); if (response.StatusCode != System.Net.HttpStatusCode.Accepted) { await AddLogInfo(response.StatusCode.ToString(), $"Email send is failed for DeviceID:{model.UDID}"); throw new ArgumentException(response.StatusCode.ToString()); } await AddLogInfo(response.StatusCode.ToString(), $"Email Sent for DeviceID:{model.UDID}"); return(response); }
public bool ResolveCustomerSupportIssue([FromUri] int ID, [FromUri] string resolvedMessage, [FromUri] string consumerName, [FromUri] string consumerEmail) { try { tblCustomerSupport customerSupportObj = new tblCustomerSupport(); if (ID > 0 && resolvedMessage != string.Empty) { customerSupportObj = db.tblCustomerSupports.Where(x => x.ID == ID).FirstOrDefault(); customerSupportObj.ResolvedMessage = resolvedMessage; customerSupportObj.IsResolved = true; customerSupportObj.ResolvedDate = DateTime.Now; customerSupportObj.Severity = 0; db.Entry(customerSupportObj).State = EntityState.Modified; db.SaveChanges(); EmailParameters param = new EmailParameters(); param.ID = ID; param.fromEmailAddress = "*****@*****.**"; param.toEmailAddress = consumerEmail; param.consumerName = consumerName; param.resolvedMessage = resolvedMessage; SendEmail.TriggerMail(param); return(true); } } catch { return(false); } return(false); }
public string SendConsumerSupportEmail([FromUri] string from, [FromUri] string message) { var result = string.Empty; var consumerObj = LoadConsumer(Session.Login_ID)[0]; try { if (consumerObj != null) { var complaintID = SaveCustomerComplaint(consumerObj.ID, from, message); if (complaintID > 0) { EmailParameters param = new EmailParameters() { ID = complaintID, fromEmailAddress = from, toEmailAddress = "*****@*****.**", consumerName = consumerObj.ConsumerName, resolvedMessage = message }; SendEmail.TriggerMail(param); result = string.Empty; } } } catch { result = "Error"; } return(result); }
public async Task <IActionResult> Email(EmailParameters parameters) { parameters.Subject = "test"; parameters.Body = "my email"; parameters.ToAddress = "*****@*****.**"; var email = new EmailMessage(); email.ToAddresses.Add(new EmailAddress(parameters.ToName, parameters.ToAddress)); //email.Subject = parameters.Subject; //for demo force a Template to reduce spam //email.Body = parameters.Body; if (string.IsNullOrEmpty(parameters.TemplateName)) { parameters.TemplateName = "Test"; } switch (parameters.TemplateName) { case "Test": email = EmailTemplates.BuildTestEmail(email, parameters.ToName); //example of email Template usage break; default: break; } email.FromAddresses.Add(new EmailAddress("*****@*****.**", "*****@*****.**")); _logger.LogInformation("Test Email: {0}", email.Subject); await _emailService.SendEmailAsync(email); return(Ok(new { success = "true" })); }
public virtual void SendEmail(EmailParameters actionParameters) { string title = actionParameters.title; string message = actionParameters.message; string to = actionParameters.to; Request.GetOwinContext().GetDependencyResolver().Resolve <IEmailService>().SendEmail(to, title, message); }
public void SmtpSend(out bool _Succeed) { EmailParameters _EmailParameters = new EmailParameters(); _Succeed = false; // 创建TcpClient对象, 并建立连接 TcpClient tcp = null; try { tcp = new TcpClient(_EmailParameters.server, EmailParameters.port); } catch { return; } if (ReadString(tcp.GetStream()).Substring(0, 3) != "220 ")//获取连接信息 { return; } if (!Command(tcp.GetStream(), "EHLO Localhost ", "250 "))// 开始进行服务器认证 { return; } if (!Command(tcp.GetStream(), "AUTH LOGIN ", "334 "))// 需要身份验证 { return; } if (!Command(tcp.GetStream(), ToBase64(_EmailParameters.username), "334 "))// 此处将username转换为Base64码 { return; } if (!Command(tcp.GetStream(), ToBase64(_EmailParameters.password), "235 "))// 此处将password转换为Base64码 { return; } // 准备发送 WriteString(tcp.GetStream(), "mail From: " + _EmailParameters.from); WriteString(tcp.GetStream(), "rcpt to: " + _EmailParameters.to); WriteString(tcp.GetStream(), "data "); // 发送邮件头 WriteString(tcp.GetStream(), "Date: " + DateTime.Now); // 时间 WriteString(tcp.GetStream(), "From: " + _EmailParameters.fromname + " < " + _EmailParameters.from + "> "); // 发件人 WriteString(tcp.GetStream(), "Subject: " + _EmailParameters.subject); // 主题 WriteString(tcp.GetStream(), "To: " + _EmailParameters.toname + " < " + _EmailParameters.to + "> "); // 收件人 //邮件格式 WriteString(tcp.GetStream(), "Reply-To: " + _EmailParameters.from); // 回复地址 WriteString(tcp.GetStream(), "X-Priority: " + EmailParameters.priority); // 优先级 WriteString(tcp.GetStream(), "KoEnemy-Version:1.0 "); // MIME版本 // 数据ID,随意 WriteString(tcp.GetStream(), "Content-Type: text/html;charset= " + EmailParameters.languageencoding); WriteString(tcp.GetStream(), "Content-Transfer-Encoding: " + EmailParameters.encoding); WriteString(tcp.GetStream(), " "); WriteString(tcp.GetStream(), " "); WriteString(tcp.GetStream(), _EmailParameters.content); WriteString(tcp.GetStream(), ". "); // 最后写完了,输入 ". " // 关闭连接 tcp.Close(); _Succeed = true; }
public async Task ShouldReturnPrepareEmailWithParams() { // Arrange string UDID = Fixture.Create <string>(); string Address = Fixture.Create <string>(); string Town = Fixture.Create <string>(); string PostCode = Fixture.Create <string>(); string Country = Fixture.Create <string>(); string Notes = Fixture.Create <string>(); DateTime LastHeartBeat = Fixture.Create <DateTime>(); string Cause = Fixture.Create <string>(); string EmailFrom = Fixture.Create <string>(); string EmailTo = Fixture.Create <string>(); string Subject = Fixture.Create <string>(); string htmlContent = Fixture.Create <string>(); string cause = Fixture.Create <string>(); Guid idTempl = Fixture.Create <Guid>(); string MailTo = Fixture.Create <string>(); EmailParameters emailParams = Fixture.Build <EmailParameters>() .With(x => x.Address, Address) .With(x => x.Cause, Cause) .With(x => x.Town, Town) .With(x => x.PostCode, PostCode) .With(x => x.Country, Country) .With(x => x.Notes, Notes) .With(x => x.MailTo, MailTo) .With(x => x.LastHeartBeat, LastHeartBeat) .With(x => x.UDID, UDID) .Without(x => x.EmailsTo) .Create(); MessageTemplate template = Fixture.Build <MessageTemplate>() .With(x => x.Cause, cause) .With(x => x.Id, idTempl) .With(x => x.Subject, Subject) .With(x => x.MessageBody, htmlContent) .Without(x => x.TypeOfMessages) .Without(x => x.TypeOfMessageId) .Create(); List <MessageTemplate> listTemp = new List <MessageTemplate>(); listTemp.Add(template); _messageRepositoryMock.Setup(x => x.GetAsync(It.IsAny <Expression <Func <MessageTemplate, bool> > >())).Returns(Task.FromResult(listTemp.AsQueryable())); // Act var actual = await _mailerService.PrepareEmail(emailParams); //Assert actual.HtmlContent.Should().Be(htmlContent); actual.Subject.Should().Be(Subject); actual.From.Email.Should().Be(_mailerOptionsMonitorMock.Object.CurrentValue.From); }
public virtual async Task <Guid> SendEmailUsingBackgroundJobService(EmailParameters actionParameters) { string title = actionParameters.title; string message = actionParameters.message; string to = actionParameters.to; string jobId = await BackgroundJobWorker.Value .PerformBackgroundJobAsync <IEmailService>(emailService => emailService.SendEmail(to, title, message)); return(Guid.Parse(jobId)); }
public async Task ShouldReturnArgumentNullException() { // Arrange EmailParameters emailParams = Fixture.Build <EmailParameters>() .Without(x => x.EmailsTo) .Create(); // Act Func <Task> actual = async() => await _mailerService.PrepareEmail(emailParams); //Assert await actual.Should().ThrowAsync <ArgumentNullException>(); }
static void Execute(EmailParameters parameters) { var apiKey = "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"; var client = new SendGridClient(apiKey); var msg = new SendGridMessage() { From = new EmailAddress(parameters.fromEmailAddress, "Admin"), Subject = "Consumer Complaint No: " + parameters.ID, PlainTextContent = parameters.resolvedMessage }; msg.AddTo(new EmailAddress(parameters.toEmailAddress, parameters.consumerName)); var response = client.SendEmailAsync(msg); }
public async Task ShouldReturnDictionaryWithParams() { // Arrange string UDID = Fixture.Create <string>(); string Address = Fixture.Create <string>(); string Town = Fixture.Create <string>(); string PostCode = Fixture.Create <string>(); string Country = Fixture.Create <string>(); string Notes = Fixture.Create <string>(); DateTime LastHeartBeat = Fixture.Create <DateTime>(); string Cause = Fixture.Create <string>(); string MailTo = Fixture.Create <string>(); EmailParameters emailParams = Fixture.Build <EmailParameters>() .With(x => x.Address, Address) .With(x => x.Cause, Cause) .With(x => x.Town, Town) .With(x => x.PostCode, PostCode) .With(x => x.Country, Country) .With(x => x.Notes, Notes) .With(x => x.MailTo, MailTo) .With(x => x.LastHeartBeat, LastHeartBeat) .With(x => x.UDID, UDID) .Without(x => x.EmailsTo) .Create(); Dictionary <string, string> expected = new Dictionary <string, string> { { "address", Address }, { "cause", Cause }, { "town", Town }, { "postcode", PostCode }, { "country", Country }, { "notes", Notes }, { "mailto", MailTo }, { "lastheartbeat", LastHeartBeat.ToString() }, { "udid", UDID }, { "emailsto", null } }; // Act var actual = MailerParser.PrepareDictionaryParams(emailParams); //Assert Assert.Equal(expected, actual); }
public async Task SendEmail(EmailParameters model, string username) { var confirmedBy = string.IsNullOrEmpty(username) ? "Admin" : username; var htmlFilePath = "./Templates/" + model.Template + ".html"; var builder = new BodyBuilder { HtmlBody = File.ReadAllText(htmlFilePath) .Replace("^Fullname^", (model.Firstname + " " + model.Lastname)) .Replace("^Date^", model.Date) .Replace("^Time^", model.Time) .Replace("^Email^", model.Email) .Replace("^Space^", model.Space) .Replace("^Message^", model.Message) .Replace("^ContactNumber^", model.ContactNumber) .Replace("^Bill^", model.Bill) .Replace("^Period^", model.Period) .Replace("^Rate^", model.Rate) .Replace("^Duration^", model.Duration) .Replace("^Number^", model.GuestCount.ToString()) .Replace("^RoomType^", model.RoomType) .Replace("^ReferenceNumber^", model.ReferenceNumber) .Replace("^ConfirmedBy^", confirmedBy) .Replace("^Link^", model.Link) }; var emailMessage = new MimeMessage { From = { new MailboxAddress("Dev Partners", _options.Value.SenderEmail) }, To = { new MailboxAddress("Dev Partners", model.IsAdmin ? model.Recipient : model.Recipient) }, Subject = model.Subject, Body = builder.ToMessageBody() }; await SendEmailAsync(emailMessage); }
public async Task <IActionResult> Send(EmailParameters parameters) { if (!ModelState.IsValid) { return(BadRequest(ModelState.Values.SelectMany(state => state.Errors) .Select(error => error.ErrorMessage) .FirstOrDefault())); } var email = new EmailMessage(); email.ToAddresses.Add(new EmailAddress(parameters.ToName, parameters.ToAddress)); //This forces all emails from the API to use the Test template to prevent spam parameters.TemplateName = "Test"; //Send a Template email or a custom one since it is hardcoded to Test template it will not do a custom email. if (!string.IsNullOrEmpty(parameters.TemplateName)) { switch (parameters.TemplateName) { case "Test": email = EmailTemplates.BuildTestEmail(email); //example of email Template usage break; default: break; } } else { email.Subject = parameters.Subject; email.Body = parameters.Body; } //Add a new From Address if you so choose, default is set in appsettings.json //email.FromAddresses.Add(new EmailAddress("New From Name", "*****@*****.**")); _logger.LogInformation("Test Email: {0}", email.Subject); await _emailService.SendEmailAsync(email); return(Ok(new { success = "true" })); }
public EmailParameters GetConfirmEmailParameter(BookLog book, bool isAdmin, ClientMaster client) { var bookDate = GetPeriod(book.DateOfArrival.Value, book.DateOfDeparture.Value, book.TimeIn.Value, book.TimeOut.Value); var duration = GetDuration(book); var bill = "₱" + GetBill(book); if (!isAdmin) { var emailParams = new EmailParameters() { Subject = $"Dev Hub: Book Confirmed!", Firstname = client.FirstName, Lastname = client.LastName, Email = client.Email, Space = GetSpaceName(book.SpaceType.Value), Recipient = client.Email, IsAdmin = false, Date = bookDate.DateArrival, Rate = GetBookRate(book.FrequencyType.Value, book.SpaceType.Value), Template = "Confirm-Booking-Template", ReferenceNumber = book.BookingRefCode, Time = bookDate.TimeIn, Period = bookDate.Period(), ContactNumber = client.ContactNumber1 + " , " + client.ContactNumber2, Duration = duration, Bill = bill }; switch (book.SpaceType) { case (int)SpaceEnum.ConferenceMeeting: emailParams.Template = "Confirm-Booking-Conference-Template"; return(emailParams); default: return(emailParams); } } else { return(null); } }
public async Task <IActionResult> EmailTest(EmailParameters parameters) { //Todo fix these parameters parameters.Subject = "test"; parameters.Body = "my email"; parameters.ToAddress = "*****@*****.**"; var email = new EmailMessage(); email.ToAddresses.Add(new EmailAddress(parameters.ToAddress, parameters.ToAddress)); email.Subject = parameters.Subject; email.Body = parameters.Body; email.FromAddresses.Add(new EmailAddress("*****@*****.**", "*****@*****.**")); _logger.LogInformation("Test Email: {0}", email.Subject); await _emailService.SendEmailAsync(email); return(Ok(new { success = "true" })); }
public async Task <APIResponse> Send(EmailParameters parameters) { if (!ModelState.IsValid) { return(new APIResponse(400, "User Model is Invalid")); } var email = new EmailMessage(); email.ToAddresses.Add(new EmailAddress(parameters.ToName, parameters.ToAddress)); //This forces all emails from the API to use the Test template to prevent spam parameters.TemplateName = "Test"; //Send a Template email or a custom one since it is hardcoded to Test template it will not do a custom email. if (!string.IsNullOrEmpty(parameters.TemplateName)) { switch (parameters.TemplateName) { case "Test": email = EmailTemplates.BuildTestEmail(email); //example of email Template usage break; default: break; } } else { email.Subject = parameters.Subject; email.Body = parameters.Body; } //Add a new From Address if you so choose, default is set in appsettings.json //email.FromAddresses.Add(new EmailAddress("New From Name", "*****@*****.**")); _logger.LogInformation("Test Email: {0}", email.Subject); await _emailService.SendEmailAsync(email); return(new APIResponse(200, "Email Successfuly Sent")); }
public async Task SendEmail(EmailParameters model) { var confirmedBy = "Admin"; var htmlFilePath = "./email-html-templates/" + model.Template + ".html"; var builder = new BodyBuilder { HtmlBody = File.ReadAllText(htmlFilePath) .Replace("^Fullname^", (model.FullName)) .Replace("^DateTime^", model.DateTimeOfArrival) .Replace("^Email^", model.Email) .Replace("^Space^", model.AmenityName) .Replace("^Message^", model.Message) .Replace("^ContactNumber^", model.ContactNumber) .Replace("^ReferenceNumber^", model.ReferenceNumber) .Replace("^ConfirmedBy^", confirmedBy) .Replace("^Link^", model.Link) .Replace("^GuestCount^", model.GuestCount) .Replace("^DatePeriod^", model.Period) .Replace("^Duration^", model.Duration) .Replace("^Rate^", "₱ " + model.Rate) }; var emailMessage = new MimeMessage { From = { new MailboxAddress("Dev Partners", _options.Value.SenderEmail) }, To = { new MailboxAddress("Dev Partners", model.IsAdmin ? model.Recipient : model.Email) }, Subject = model.Subject, Body = builder.ToMessageBody() }; await SendEmailAsync(emailMessage); }
/// <summary> /// Составление и отправка Email. /// Что нужно подготовить: /// 0. Настройка для отправки письма: /// - параметры почтового сервера (host, port, ssl) /// - данные отправителя (username, password) /// - email отправителя (может быть равен username по умолчанию) /// 1. Имена файлов для вложения в письмо /// 2. Адрес получателя /// 3. Тема письма /// 4. Данные для тела письма (Номер документа, дата дела...) /// </summary> static void sendEmailByNewInterface(EmailSenderConfig senderConfig, string attachFileName, string AddressTo, string DocNumber, DateTime RequestDate, WebParserResult parserResult) { // Тема письма string mailSubject = $"--==Документ {DocNumber} от {RequestDate} ==--"; // Тело письма string mailBodyText = ComposeMailTextBody(DocNumber, parserResult); string mailBodyHtml = ComposeMailHtmlBody(DocNumber, parserResult); EmailParameters emailParameters = new EmailParameters() { message = new EmailMessageParameters() { AddressFrom = senderConfig.username, AddressFromAlias = senderConfig.usernameAlias, AddressTo = AddressTo, Subject = mailSubject, BodyText = mailBodyText, BodyHtml = mailBodyHtml } }; if (!string.IsNullOrEmpty(attachFileName)) { emailParameters.attachments = new List <EmailAttachmentParameters>() { new EmailAttachmentParameters() { FilePath = attachFileName, FileName = Path.GetFileName(attachFileName), MediaType = MediaTypeNames.Application.Pdf } }; } IEmailSender emailSender = new OnlineEmailSender(senderConfig); IEmailComposer emailComposer = new OnlineEmailComposer(emailParameters, emailSender); emailComposer.ComposeAndSendEmail(); }
public async Task <MailSendingModel> PrepareEmail(EmailParameters emailParams) { MailSendingModel email = new MailSendingModel(); emailParams.MailTo = _toMail; Dictionary <string, string> parameters = MailerParser.PrepareDictionaryParams(emailParams); var emailtemplate = (await _messagetTemplateRepository.GetAsync(Filtering(emailParams.Cause))) .OrderByDescending(x => x.CreateOn) .FirstOrDefault(); if (emailtemplate != null) { email.Subject = MailerParser.ProcessTemplate(emailtemplate.Subject, parameters); email.From = new EmailAddress(_from); email.To.AddRange(_to?.Select(x => new EmailAddress(x)) ?? new List <EmailAddress>()); //email.To.AddRange(emailParams.EmailsTo?.Select(x => new EmailAddress(x)) ?? new List<EmailAddress>());/ email.HtmlContent = MailerParser.ProcessTemplate(emailtemplate.MessageBody, parameters); return(email); } throw new ArgumentNullException("Message", "Email template not found"); }
public EmailParameters BookLogForEmailParam(BookLogForEmailModel model, string template, string uri, bool isAdmin) { var emailParams = new EmailParameters { Subject = $"Dev Hub: New Booking Request!", FullName = model.FullName, Email = model.Email, AmenityName = model.AmenityName, Recipient = model.Recipient, Template = template, DateTimeOfArrival = model.DateTimeOfArrival.ToString(), IsFromDevhub = true, Message = !string.IsNullOrEmpty(model.Remarks) ? model.Remarks : "No Message", ContactNumber = string.Concat(model.ContactNumber), IsAdmin = isAdmin, Rate = model.RateValue.ToString(".00") + " - " + model.FrequencyDescription, GuestCount = model.Capacity, ReferenceNumber = model.BookingRefCode, Link = _options.Value.Protocol + uri + "/#!/Confirm?token=" + model.BookingRefCode + model.BookingID.ToString(), Period = model.DatePeriod, Duration = model.Duration }; return(emailParams); }
public static Dictionary <string, string> PrepareDictionaryParams(EmailParameters emailParams) { return(typeof(EmailParameters) .GetProperties() .ToDictionary(c => c.Name.ToLower(), c => c.GetValue(emailParams)?.ToString())); }
public OnlineEmailComposer(EmailParameters emailParameters, IEmailSender emailSender) { _emailParameters = emailParameters; _emailSender = emailSender; }
public virtual async Task <Guid> SendEmailUsingBackgroundJobServiceAndPushAfterThat(EmailParameters actionParameters) { string title = actionParameters.title; string message = actionParameters.message; string to = actionParameters.to; string jobId = await BackgroundJobWorker.Value .PerformBackgroundJobAsync <IEmailService>(emailService => emailService.SendEmail(to, title, message)); string secondJobId = await BackgroundJobWorker.Value .PerformBackgroundJobWhenAnotherJobSucceededAsync <IMessageSender>(jobId, messageSender => messageSender.SendMessageToUsers("OnEmailSent", new { Title = title }, new[] { to })); return(Guid.Parse(secondJobId)); }
public EmailParameters GetApproveEmailParameter(EmailParametersModel model, bool isAdmin) { var space = GetSpaceName(model.UserInfo.SpaceType); var firstname = model.UserInfo.HaveBookedBefore ? model.Client.FirstName : model.UserInfo.FirstName; var lastname = model.UserInfo.HaveBookedBefore ? model.Client.LastName : model.UserInfo.LastName; var rate = GetBookRate(model.UserInfo.FrequencyType, model.UserInfo.SpaceType); if (!isAdmin) { var emailParams = new EmailParameters() { Subject = $"Dev Hub: Confirming Booking!", Firstname = firstname, Lastname = lastname, Email = model.Client.Email, Recipient = model.Client.Email, Template = "Add-Booking-Template", Date = model.UserInfo.DateOfArrival.ToString("MMMM dd, yyyy"), Message = !string.IsNullOrEmpty(model.UserInfo.Remarks) ? model.UserInfo.Remarks : "No Message", ContactNumber = model.Client.ContactNumber1 + ", " + model.Client.ContactNumber2, IsAdmin = false, Rate = rate, RoomType = model.UserInfo.RoomType, GuestCount = model.UserInfo.PersonCount, Space = space }; switch (model.UserInfo.SpaceType) { case (int)SpaceEnum.ConferenceMeeting: emailParams.Template = "Add-Booking-Conference-Template"; return(emailParams); default: return(emailParams); } } else { var emailParams = new EmailParameters() { Subject = $"Dev Hub: New Booking Request!", Firstname = firstname, Lastname = lastname, Email = model.Client.Email, Space = space, Recipient = model.Client.Email, Template = "Add-Admin-Booking-Template", Date = model.UserInfo.DateOfArrival.ToString("MMMM dd, yyyy"), IsFromDevhub = true, Message = !string.IsNullOrEmpty(model.UserInfo.Remarks) ? model.UserInfo.Remarks : "No Message", ContactNumber = model.Client.ContactNumber1 + ", " + model.Client.ContactNumber2, IsAdmin = true, Rate = rate, RoomType = model.UserInfo.RoomType, GuestCount = model.UserInfo.PersonCount, Link = _options.Value.Protocol + model.Uri + "/#!/Confirm?token=" + model.UserInfo.RefCode + model.Id }; switch (model.UserInfo.SpaceType) { case (int)SpaceEnum.ConferenceMeeting: emailParams.Template = "Add-Admin-Booking-Conference-Template"; return(emailParams); default: return(emailParams); } } }
public static bool LogException(decimal userId, Exception[] exs, bool dontSendEmail) { try { // add all exceptions to the database foreach (Exception ex in exs) { WriteDebugInfo(ex.Message); //EcUserEntity user = new EcUserEntity(userId); //EcExceptionLogEntity logEntry = new EcExceptionLogEntity(); //logEntry.organizationId = userId; //logEntry.CustomerLocationId = //logEntry.CustomerExceptionLogId = //MemoryStream stream = new MemoryStream(); //new XmlSerializer(typeof(Exception)).Serialize(stream, ex); //stream.Position = 0; //logEntry.CustomerExceptionObject = stream.ToArray(); //logEntry.CustomerExceptionTitle; //logEntry.CustomerExceptionMessage = ex.Message; //logEntry.CustomerExceptionStackTrace = ex.StackTrace; //if (ex.InnerException != null) // logEntry.CustomerExceptionInnerStackTrace = ex.InnerException.StackTrace; //else // logEntry.CustomerExceptionInnerStackTrace = ""; //logEntry.CustomerExceptionDateTime = DateTime.Now; //logEntry.CustomerExceptionUser = userId.ToString(); //logEntry.CustomerExceptionFormName //logEntry.CustomerExceptionMachineName = //logEntrylogEntry.CustomerExceptionMachineOs = //logEntry.CustomerExceptionApplicationVersion = //logEntry.CustomerExceptionClrversion = //logEntry.CustomerExceptionMemoryUsage = //logEntry.ReceivedDate = DateTime.Now; //logEntry.Save(); } // check whether or not to send the email if ((!dontSendEmail) && (ConfigurationManager.AppSettings.Get("EmailExceptions") == "Y")) { EmailParameters myEmailParameters = new EmailParameters(); myEmailParameters.Receiver = "*****@*****.**"; myEmailParameters.ReceiverFirstName = "Brian"; myEmailParameters.ReceiverLastName = "Cullinan"; myEmailParameters.Sender = GlobalSettings.Emails.DEFAULT_FROM_ADDRESS; myEmailParameters.SubjectLine = ""; foreach (Exception ex in exs) { myEmailParameters.SubjectLine += (myEmailParameters.SubjectLine == "" ? "Exception: " : "; ") + ex.Source; myEmailParameters.BodyContent += "Exception Message: " + ex.Message + Environment.NewLine + Environment.NewLine + ex.StackTrace + Environment.NewLine + Environment.NewLine; int stop = 10; Exception inner = ex.InnerException; while (inner != null && stop > 0) { myEmailParameters.BodyContent += "InnerException Message: " + inner.Message + Environment.NewLine + Environment.NewLine + inner.StackTrace + Environment.NewLine + Environment.NewLine; inner = inner.InnerException; stop--; } } myEmailParameters.IsHTMLBody = false; EmailProcessor.SendEmail(myEmailParameters, GlobalSettings.LOCATION_ID, GlobalSettings.SYSTEM_DAEMON_USER_ID); } return(true); } catch (Exception tmp_ex) { //Hosed here if a exception occurs so eat it. return(false); } }
public static void TriggerMail(EmailParameters parameters) { Execute(parameters); }
/// <summary> /// Email to one recipient. /// </summary> /// <param name="emailParameters"></param> /// <param name="to"></param> /// <param name="emailContent"></param> /// <param name="attachmentFileList"></param> public static void Email(EmailParameters emailParameters, string to, EmailContent emailContent, List<string> attachmentFileList) { Email(emailParameters, to, emailContent.Subject, emailContent.Body, emailContent.IsHtml, attachmentFileList); }
public ActionResult ForgetPassword(string Email) { IEnumerable <ForgetPasswordViewModel> details = null; if (ModelState.IsValid) { using (var client = new HttpClient()) { string type = "email"; client.BaseAddress = new Uri("http://fsmx-qa.azurewebsites.net/rest/c/customer/duplicate/user/email/"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var response = client.GetAsync("id" + Email); response.Wait(); var result = response.Result; if (result.IsSuccessStatusCode) { using (var client2 = new HttpClient()) { client2.BaseAddress = new Uri("http://fsmx-qa.azurewebsites.net//rest/c/customer/profile/"); string sampletoken = "03E42414-BE22-48CA-90F0-EEC952081DE8"; //var responsetask1 = client2.GetAsync(string.Format("{0}", sampletoken)); var responsetask = client.GetAsync(string.Format("{0}", sampletoken)); responsetask.Wait(); var result1 = responsetask.Result; if (result1.IsSuccessStatusCode) { //var readTask1 = result1.Content.ReadAsAsync<IList<ForgetPasswordViewModel>>(); string readtask1 = result1.Content.ReadAsStringAsync().Result; //readtask1.Wait(); // details= readtask1.Result; } } string userid = "demo1"; string companyid = "em12723"; string datetime = DateTime.UtcNow.ToString(); string text = String.Concat(userid, "%", companyid, "%", datetime); string plaintext = "fgfghehry63646126262677351dgg"; string token = "BLSHDGFGER2433564GDGG4664"; var lnkHref = Url.Action("ResetPassword", "ForgetPassword", new { text = plaintext, code = token, }, "http"); string To = "*****@*****.**"; string subject = "test1"; string body = string.Empty; using (StreamReader reader = new StreamReader(Server.MapPath("~/EmailTemplate.html"))) { body = reader.ReadToEnd(); } body = body.Replace("{ConfirmationLink}", lnkHref); body = body.Replace("{UserName}", Email); using (var client1 = new HttpClient()) { client1.BaseAddress = new Uri("http://fsmx-qa.azurewebsites.net"); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); EmailParameters account = new EmailParameters { To = To, Subject = subject, Body = body }; try { string json = JsonConvert.SerializeObject(account); Console.WriteLine(json); StringContent content = new StringContent(json, Encoding.UTF8, "application/json"); var response1 = client.PutAsync("/rest/c/customer/reset/email", content); response1.Wait(); var result1 = response1.Result; if (result1.IsSuccessStatusCode) { ViewBag.Message = "Confirmation Mail Has been Sent to your Registered Mail Id"; } else { return(RedirectToAction("Error")); } } catch (Exception ex) { } } } } } return(View("ForgetPassword")); }
/// <summary> /// Email to one recipient. /// </summary> /// <param name="emailParameters"></param> /// <param name="to"></param> /// <param name="subject"></param> /// <param name="body"></param> /// <param name="isHtml"></param> /// <param name="attachmentFileList"></param> public static void Email(EmailParameters emailParameters, string to, string subject, string body, bool isHtml, IEnumerable<string> attachmentFileList) { Email(emailParameters, new string[] { to }, null, null, subject, body, isHtml, null); }
public EmailService(EmailParameters emailParameters) { _emailParameters = emailParameters; }
public static void Email( EmailParameters emailParameters, IEnumerable<string> toList, IEnumerable<string> ccList, IEnumerable<string> bccList, string subject, string body, bool isHtml, IEnumerable<string> attachmentFileList) { // Verification IEnumerator<string> enumerator = toList.GetEnumerator(); if (toList == null || !enumerator.MoveNext() || string.IsNullOrEmpty(enumerator.Current)) { throw new Exception("There must be at least one email address in the To list."); } foreach (string email in toList) if (!IsValidEmail(email)) throw new Exception("Invalid email in the To list: " + email); if (ccList != null) { foreach (string email in ccList) if (!IsValidEmail(email)) throw new Exception("Invalid email in the Cc list: " + email); } if (bccList != null) { foreach (string email in bccList) if (!IsValidEmail(email)) throw new Exception("Invalid email in the Bcc list: " + email); } // Smtp server SmtpClient smtpClient = new SmtpClient(); smtpClient.Host = emailParameters.Host; if (!emailParameters.UsingDefaultPort) { smtpClient.Port = emailParameters.Port; } smtpClient.EnableSsl = emailParameters.UseSSL; smtpClient.Credentials = new System.Net.NetworkCredential(emailParameters.User, Util.Decrypt(emailParameters.Password)); // Emails From, To, Cc, Bcc and attachments MailMessage mailMessage = new MailMessage(); mailMessage.From = new MailAddress(emailParameters.Email, emailParameters.DisplayName); foreach (string to in toList) { mailMessage.To.Add(new MailAddress(to)); } if (ccList != null) { foreach (string cc in ccList) { mailMessage.CC.Add(new MailAddress(cc)); } } if (bccList != null) { foreach (string bcc in bccList) { mailMessage.Bcc.Add(new MailAddress(bcc)); } } if (attachmentFileList != null) { foreach (string fileName in attachmentFileList) { mailMessage.Attachments.Add(new Attachment(fileName)); } } // Email Subject and Body mailMessage.Subject = subject; mailMessage.IsBodyHtml = isHtml; mailMessage.Body = body; // Send email if (!(Util.IsDebug() && emailParameters.SkipEmailOnDebug)) { smtpClient.Send(mailMessage); } }