public Task SendAsync(string to, string subject, string body, bool isHtml = false)
 {
     return(mailer?.SendAsync(to, subject, body, isHtml));
 }
Пример #2
0
        public async Task SendNotifyAsync(FormInfo formInfo, List<TableStyle> styles, DataInfo dataInfo)
        {
            if (formInfo.IsAdministratorSmsNotify &&
                !string.IsNullOrEmpty(formInfo.AdministratorSmsNotifyTplId) &&
                !string.IsNullOrEmpty(formInfo.AdministratorSmsNotifyMobile))
            {
                var isSmsEnabled = await _smsManager.IsEnabledAsync();
                if (isSmsEnabled)
                {
                    var parameters = new Dictionary<string, string>();
                    if (!string.IsNullOrEmpty(formInfo.AdministratorSmsNotifyKeys))
                    {
                        var keys = formInfo.AdministratorSmsNotifyKeys.Split(',');
                        foreach (var key in keys)
                        {
                            if (StringUtils.EqualsIgnoreCase(key, nameof(DataInfo.Id)))
                            {
                                parameters.Add(key, dataInfo.Id.ToString());
                            }
                            else if (StringUtils.EqualsIgnoreCase(key, nameof(DataInfo.CreatedDate)))
                            {
                                if (dataInfo.CreatedDate.HasValue)
                                {
                                    parameters.Add(key, dataInfo.CreatedDate.Value.ToString("yyyy-MM-dd HH:mm"));
                                }
                            }
                            else
                            {
                                var value = dataInfo.Get<string>(key);
                                parameters.Add(key, value);
                            }
                        }
                    }

                    await _smsManager.SendAsync(formInfo.AdministratorSmsNotifyMobile,
                        formInfo.AdministratorSmsNotifyTplId, parameters);
                }
            }

            if (formInfo.IsAdministratorMailNotify &&
                !string.IsNullOrEmpty(formInfo.AdministratorMailNotifyAddress))
            {
                var isMailEnabled = await _mailManager.IsEnabledAsync();
                if (isMailEnabled)
                {
                    var templateHtml = await GetMailTemplateHtmlAsync();
                    var listHtml = await GetMailListHtmlAsync();

                    var keyValueList = new List<KeyValuePair<string, string>>
                    {
                        new KeyValuePair<string, string>("编号", dataInfo.Guid)
                    };
                    if (dataInfo.CreatedDate.HasValue)
                    {
                        keyValueList.Add(new KeyValuePair<string, string>("提交时间",
                            dataInfo.CreatedDate.Value.ToString("yyyy-MM-dd HH:mm")));
                    }

                    foreach (var style in styles)
                    {
                        keyValueList.Add(new KeyValuePair<string, string>(style.DisplayName,
                            dataInfo.Get<string>(style.AttributeName)));
                    }

                    var list = new StringBuilder();
                    foreach (var kv in keyValueList)
                    {
                        list.Append(listHtml.Replace("{{key}}", kv.Key).Replace("{{value}}", kv.Value));
                    }

                    var htmlBody = templateHtml
                        .Replace("{{title}}", formInfo.Title)
                        .Replace("{{list}}", list.ToString());

                    await _mailManager.SendAsync(formInfo.AdministratorMailNotifyAddress, "[SSCMS] 通知邮件",
                        htmlBody);
                }
            }

            if (formInfo.IsUserSmsNotify &&
                !string.IsNullOrEmpty(formInfo.UserSmsNotifyTplId) &&
                !string.IsNullOrEmpty(formInfo.UserSmsNotifyMobileName))
            {
                var isSmsEnabled = await _smsManager.IsEnabledAsync();
                if (isSmsEnabled)
                {
                    var parameters = new Dictionary<string, string>();
                    if (!string.IsNullOrEmpty(formInfo.UserSmsNotifyKeys))
                    {
                        var keys = formInfo.UserSmsNotifyKeys.Split(',');
                        foreach (var key in keys)
                        {
                            if (StringUtils.EqualsIgnoreCase(key, nameof(DataInfo.Id)))
                            {
                                parameters.Add(key, dataInfo.Id.ToString());
                            }
                            else if (StringUtils.EqualsIgnoreCase(key, nameof(DataInfo.CreatedDate)))
                            {
                                if (dataInfo.CreatedDate.HasValue)
                                {
                                    parameters.Add(key, dataInfo.CreatedDate.Value.ToString("yyyy-MM-dd HH:mm"));
                                }
                            }
                            else
                            {
                                var value = dataInfo.Get<string>(key);
                                parameters.Add(key, value);
                            }
                        }
                    }

                    var mobile = dataInfo.Get<string>(formInfo.UserSmsNotifyMobileName);
                    if (!string.IsNullOrEmpty(mobile))
                    {
                        await _smsManager.SendAsync(mobile, formInfo.UserSmsNotifyTplId, parameters);
                    }
                }
            }
        }
Пример #3
0
        public async Task SendNotifyAsync(Site site, Settings settings, Comment comment)
        {
            if (settings.IsAdministratorSmsNotify &&
                !string.IsNullOrEmpty(settings.AdministratorSmsNotifyTplId) &&
                !string.IsNullOrEmpty(settings.AdministratorSmsNotifyMobile))
            {
                var isSmsEnabled = await _smsManager.IsEnabledAsync();

                if (isSmsEnabled)
                {
                    var parameters = new Dictionary <string, string>();
                    if (!string.IsNullOrEmpty(settings.AdministratorSmsNotifyKeys))
                    {
                        var keys = settings.AdministratorSmsNotifyKeys.Split(',');
                        foreach (var key in keys)
                        {
                            if (StringUtils.EqualsIgnoreCase(key, nameof(Comment.Id)))
                            {
                                parameters.Add(key, comment.Id.ToString());
                            }
                            else if (StringUtils.EqualsIgnoreCase(key, nameof(Comment.CreatedDate)))
                            {
                                if (comment.CreatedDate.HasValue)
                                {
                                    parameters.Add(key, comment.CreatedDate.Value.ToString("yyyy-MM-dd HH:mm"));
                                }
                            }
                            else
                            {
                                var value = comment.Get <string>(key);
                                parameters.Add(key, value);
                            }
                        }
                    }

                    await _smsManager.SendAsync(settings.AdministratorSmsNotifyMobile,
                                                settings.AdministratorSmsNotifyTplId, parameters);
                }
            }

            if (settings.IsAdministratorMailNotify &&
                !string.IsNullOrEmpty(settings.AdministratorMailNotifyAddress))
            {
                var isMailEnabled = await _mailManager.IsEnabledAsync();

                if (isMailEnabled)
                {
                    var templateHtml = await GetMailTemplateHtmlAsync();

                    var listHtml = await GetMailListHtmlAsync();

                    var keyValueList = new List <KeyValuePair <string, string> >
                    {
                        new KeyValuePair <string, string>("编号", comment.Guid)
                    };
                    if (comment.CreatedDate.HasValue)
                    {
                        keyValueList.Add(new KeyValuePair <string, string>("提交时间",
                                                                           comment.CreatedDate.Value.ToString("yyyy-MM-dd HH:mm")));
                    }

                    keyValueList.Add(new KeyValuePair <string, string>("评论内容",
                                                                       comment.Content));

                    var list = new StringBuilder();
                    foreach (var kv in keyValueList)
                    {
                        list.Append(listHtml.Replace("{{key}}", kv.Key).Replace("{{value}}", kv.Value));
                    }

                    var contentInfo = await _contentRepository.GetAsync(site, comment.ChannelId, comment.ContentId);

                    var title = contentInfo?.Title ?? string.Empty;

                    var htmlBody = templateHtml
                                   .Replace("{{title}}", title)
                                   .Replace("{{list}}", list.ToString());

                    await _mailManager.SendAsync(settings.AdministratorMailNotifyAddress, "[SSCMS] 通知邮件",
                                                 htmlBody);
                }
            }

            if (settings.IsUserSmsNotify &&
                !string.IsNullOrEmpty(settings.UserSmsNotifyTplId) &&
                !string.IsNullOrEmpty(settings.UserSmsNotifyMobileName))
            {
                var isSmsEnabled = await _smsManager.IsEnabledAsync();

                if (isSmsEnabled)
                {
                    var parameters = new Dictionary <string, string>();
                    if (!string.IsNullOrEmpty(settings.UserSmsNotifyKeys))
                    {
                        var keys = settings.UserSmsNotifyKeys.Split(',');
                        foreach (var key in keys)
                        {
                            if (StringUtils.EqualsIgnoreCase(key, nameof(Comment.Id)))
                            {
                                parameters.Add(key, comment.Id.ToString());
                            }
                            else if (StringUtils.EqualsIgnoreCase(key, nameof(Comment.CreatedDate)))
                            {
                                if (comment.CreatedDate.HasValue)
                                {
                                    parameters.Add(key, comment.CreatedDate.Value.ToString("yyyy-MM-dd HH:mm"));
                                }
                            }
                            else
                            {
                                var value = comment.Get <string>(key);
                                parameters.Add(key, value);
                            }
                        }
                    }

                    var mobile = comment.Get <string>(settings.UserSmsNotifyMobileName);
                    if (!string.IsNullOrEmpty(mobile))
                    {
                        await _smsManager.SendAsync(mobile, settings.UserSmsNotifyTplId, parameters);
                    }
                }
            }
        }