//mails public string SendEmail(EmailRequestWithAttachments req, EmailUserConfigType configType = EmailUserConfigType.WEBSITE_DEVELOPER, string clientId = null) { try { var basePlugin = BasePluginConfigGenerator.GetBasePlugin(clientId); var basePluginEmailConfiguration = (configType == EmailUserConfigType.WEBSITE_DEVELOPER) ? basePlugin.GetEmailConfiguration() : basePlugin.GetKAdminEmailConfiguration(); WithFloatsExternalSMTPConfiguration smtpConfig; #region INIT EMAIL CONFIGURATION if (req.CustomSMTPConfig == null) { smtpConfig = new WithFloatsExternalSMTPConfiguration() { EnableSsl = basePluginEmailConfiguration.EnableSsl, ServerHost = basePluginEmailConfiguration.ServerHost, ServerPort = basePluginEmailConfiguration.ServerPort, SMTPUserName = basePluginEmailConfiguration.SMTPUserName, SMTPUserPassword = basePluginEmailConfiguration.SMTPUserPassword, TimeOut = basePluginEmailConfiguration.TimeOut, UserName = basePluginEmailConfiguration.SMTPUserName }; } else { smtpConfig = new WithFloatsExternalSMTPConfiguration() { EnableSsl = req.CustomSMTPConfig.EnableSsl, ServerHost = req.CustomSMTPConfig.ServerHost, ServerPort = req.CustomSMTPConfig.ServerPort, SMTPUserName = req.CustomSMTPConfig.SMTPUserName, SMTPUserPassword = req.CustomSMTPConfig.SMTPUserPassword, TimeOut = req.CustomSMTPConfig.TimeOut, UserName = req.CustomSMTPConfig.UserName }; } #endregion var request = (HttpWebRequest)WebRequest.Create(EnvConstants.Constants.EmailAPI); request.Method = "POST"; request.ContentType = "application/json"; var requestObj = new KitsuneConvertMailRequest { ClientId = EnvConstants.Constants.KitsuneDevClientId, EmailBody = req.EmailBody, Subject = req.Subject, To = req.To, Attachments = req.Attachments, From = basePluginEmailConfiguration.FromEmailAddress, CustomSMTPConfig = smtpConfig }; var jsonSerializer = new DataContractJsonSerializer(typeof(KitsuneConvertMailRequest)); var mem = new MemoryStream(); jsonSerializer.WriteObject(mem, requestObj); string finalData = Encoding.UTF8.GetString(mem.ToArray(), 0, (int)mem.Length); var bytes = new UTF8Encoding().GetBytes(finalData); using (Stream stream = request.GetRequestStream()) { stream.Write(bytes, 0, bytes.Length); } WebResponse ws = request.GetResponse(); var sr = new StreamReader(ws.GetResponseStream()); var rs = sr.ReadToEnd(); return(rs); } catch (Exception ex) { return(null); //EventLogger.Write(ex, "NowFloats.Boost Exception: Unable to SendMailToServer", null); } }
public IActionResult SendEmail([FromQuery] string clientId, [FromQuery] string projectId, [FromBody] EmailRequestWithAttachments emailRequestModel, [FromQuery] EmailUserConfigType configType = EmailUserConfigType.WEBSITE_USER) { try { if (emailRequestModel == null) { return(BadRequest()); } if (!String.IsNullOrEmpty(projectId) && String.IsNullOrEmpty(clientId)) { try { clientId = MongoConnector.GetClientIdFromWebsiteId(projectId); } catch { } } return(Ok(new EmailHelper().SendEmail(emailRequestModel, configType, clientId))); } catch (Exception ex) { return(BadRequest(ex)); } }