DNN 7 - Тест SMTP в настройках хоста работает, но не может отправлять электронные письма в контактных формах

Вчера все сайты в этой установке DNN перестали отправлять электронные письма. Когда вы пытаетесь протестировать SMTP в настройках хоста, он отправляет тестовое письмо без каких-либо проблем.

Сначала я подумал, что мой IP может быть занесен в черный список, но ведь тест SMTP тоже не пройдет?


person supervan    schedule 22.02.2015    source источник
comment
У вас есть дополнительная информация? Журнал, имя модуля???   -  person JK84    schedule 22.02.2015
comment
Это бесплатный модуль обратной связи по умолчанию. Теперь перестроил мой сервер, также обновил его до Windows Server 2012. Настроил SMTP-сервер в консоли IIS6. Как и прежде тест SMTP работает, и у нас чуть больше успехов. Он отправит электронное письмо тому, кто заполнит форму обратной связи и решит получить копию. Но не администратору.   -  person supervan    schedule 01.03.2015
comment
Последние журналы можно найти здесь: goo.gl/Czn7uK.   -  person supervan    schedule 01.03.2015


Ответы (3)


Я почти уверен, что параметр Test SMTP в Host напрямую вызывает службу отправки почты в API DNN. Но многие другие электронные письма поставлены в очередь на отправку для масштабируемости.

Проверьте, не отключено ли ваше задание «Отправка сообщений» в разделе «Хост» > «Планировщик». Если нет, проверьте историю, щелкнув значок «Журнал» в правой части списка запланированных задач. Посмотрите, есть ли ошибки, зарегистрированные там.

Если там все в порядке, проверьте свои журналы в /Portals/_default/Logs на наличие проблем, связанных с обменом сообщениями или SMTP.

person DotNetNuclear    schedule 22.02.2015
comment
Все записи в Messaging Dispatch отображаются как Успешно, ошибок нет, но также отправлено 0 сообщений. В логах /Portals/_default/Logs нет упоминания SMTP или чего-то связанного с обменом сообщениями. Спасибо за советы. Поиск решения продолжается. - person supervan; 28.02.2015
comment
Supervan, если вы используете gmail в качестве smtp, имейте в виду, что они внесли изменения в то, как вы можете его использовать. Обязательно создайте пароль приложения для своего сайта DNN. Для этого перейдите на страницу своей учетной записи Google, прокрутите вниз до панели входа и нажмите «Пароли приложений». Создайте собственное приложение и назовите его DNN Dev Site или что-то в этом роде. Получите пароль и настройте учетные данные DNN SMTP следующим образом: SMTP-сервер и порт: smtp.gmail.com:587, SMTP-аутентификация: Basic, SMTP Enable SSL: True, SMTP-имя пользователя: [email protected], SMTP-пароль: [сгенерировано пароль приложения] - person DotNetNuclear; 01.03.2015
comment
Я использую собственный SMTP сервера. Обновил сервер до 2012 и настроил SMTP. Теперь он будет отправлять электронные письма только тому, кто заполнит форму обратной связи и выберет получение копии. Не к администратору. - person supervan; 01.03.2015

Я бы начал с проверки того, определили ли вы действительный (пригодный для использования) адрес электронной почты в своей учетной записи ADMIN. DNN будет «отправлять» электронные письма от любого администратора в настройках сайта, поэтому проверьте адрес электронной почты в профиле этого пользователя, убедитесь, что адрес электронной почты/домен действителен, а используемые вами настройки SMTP разрешены для отправки из этого домена.

person Chris Hammond    schedule 22.02.2015
comment
Спасибо за совет, проверили, это обычная учетная запись Google Apps. В прошлом он мог отправлять электронные письма, и я заставил его работать на одном из моих сайтов. Но только один раз. Сейчас опять остановилось. Ошибок в журнале нет. - person supervan; 28.02.2015

Если вы разработали динамический модуль контактной формы в папке DesktopModules, вам необходимо вызвать ниже метод DNN SendMail в событии нажатия кнопки отправки.

DotNetNuke.Services.Mail.Mail.SendMail(FromEmailAddress, ToEmailAddress, CCEmailAddress, BCCEmailAddress,
                                                    DotNetNuke.Services.Mail.MailPriority.Normal,
                                                    EmailSubject,
                                                    DotNetNuke.Services.Mail.MailFormat.Html, 
                                                    System.Text.Encoding.UTF8, 
                                                    EmailBodyMessage, "", "", "", "", "");
person Keval Gangani    schedule 28.02.2015