Ejemplo n.º 1
0
        //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);
            }
        }
Ejemplo n.º 2
0
        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));
            }
        }