Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Настройка отправки почты с сервера
|
|||
|---|---|---|---|
|
#18+
Добрый день ребята. Только начинаю изучение SQL. помогите написать робота правильно. Microsoft SQL Server 2017 (RTM-CU8) (KB4338363) - 14.0.3029.16 (X64) Jun 13 2018 13:35:56 Copyright (C) 2017 Microsoft Corporation Enterprise Edition (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) Настроил отправку писем с сервера пользователям, протестил EXEC msdb.dbo.sp_send_dbmail, процедура письма шлет. У меня есть таблица где сидят зарегистрированные партнеры, но поле email не является обязательным, но в 90% случае это поле заполнено. Нужно написать робота, который каждые 10 дней с момента регистрации партнера, будет отправлять на email письма с неким уведомлением для них, в течении 30 дней. И если на 30-ый день партнер не выслал документы, его учетка аннулируется, т.е. проставляется флаг удаления в этой же таблице. Если он выслал и его доки прошли верификацию, то наш пользователь ставит ему битовый флаг = доки высланы. И робот перестает ему слать письма. Но по каким-то причина может сломаться отправка почтового сервера и письмо может не уйти, то отправить письмо повторно, независимо прошел 10-ый день или нет. Вот есть некая таблица зарегистрированных партнеров Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. Я так понял логи отправилось письмо или нет, пишутся сюда Код: sql 1. И также есть системная вьюшка Код: sql 1. 2. , где есть sent_status, успешно ли отправлено письмо или нет, в случае не успеха (failed) отправить повторно. Но какая то тяжелая таблица, не пойму как осуществлять поиск, если по email, я так понял она не индексирована по email И поиск очень тяжелый. Я понимаю что джоб должен запускаться каждый день на отправку, т.к. у каждого партнера своя дата регистрации, и что нужен некий цикл на проверку таблицы на флаги и проверка в логах отправилось ли письмо успешно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2018, 12:13 |
|
||
|
Настройка отправки почты с сервера
|
|||
|---|---|---|---|
|
#18+
beginSQL, У msdb.dbo.sp_send_dbmail есть исходящий параметр автор[ @mailitem_id = ] mailitem_id [ OUTPUT ] Optional output parameter returns the mailitem_id of the message. The mailitem_id is of type int. А у msdb.dbo.sysmail_allitems есть авторmailitem_id int Identifier of the mail item in the mail queue. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2018, 12:28 |
|
||
|
Настройка отправки почты с сервера
|
|||
|---|---|---|---|
|
#18+
Кто может помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2018, 18:27 |
|
||
|
Настройка отправки почты с сервера
|
|||
|---|---|---|---|
|
#18+
beginSQL, Вам же написали, что делать - сохраняйте ID отправленных писем, затем используйте их для проверки статуса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2018, 20:56 |
|
||
|
Настройка отправки почты с сервера
|
|||
|---|---|---|---|
|
#18+
вопрос по вьюшке Код: sql 1. в случае sent_status - failed , я должен просто тут обновить статус на Retrying ? update msdb.dbo.sysmail_mailitems set sent_status = 1 ? этого будет достаточно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2018, 11:29 |
|
||
|
Настройка отправки почты с сервера
|
|||
|---|---|---|---|
|
#18+
Владислав Колосов, Я сохраняю @mailitem_id, во временную таблицу, потом идет сравнение с msdb.dbo.sysmail_allitems , где sent_status <> 'sent', если запись существует, можно ли отправить письмо с этим сохраненным @mailitem_id, повторно? или нужно снова вызывать процедуру sp_send_dbmail ? в случае ошибки отправить письмо на след. день можно ли указать ему дату отправки dateadd(d,1,getdate()) ? Просто джоб срабатывает каждый день, но там есть определенные условия срабатывания, если в этот день некоторые @mailitem_id отвалились с ошибкой, на след день он их не отправит, т.к. они уже не будут удовлетворять условиям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2018, 11:40 |
|
||
|
Настройка отправки почты с сервера
|
|||
|---|---|---|---|
|
#18+
beginSQL, для ответственной рассылки я написал собственную систему, для которой Reporting Services формирует и сохраняет письма в файлы. Система читает файлы из папки и отсылает так, как мне это нужно. Внутренняя система годится лишь для отправки разного рода оповещений и алёртов, т.к. почти не контролируема. Кроме того, необходимо периодически чистить файлы журналов отправки, а их несколько. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2018, 16:34 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1689359]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 240ms |
| total: | 415ms |

| 0 / 0 |
