Платформа.NET » ASP.NET Реализация email рассылки

Здравствуйте!

Подскажите пожалуйста как реализовать Email рассылку. Как отправить само письмо попробую сам разобраться. А вот как дать понять моему сайту, что после того как пользователь зарегистрировался ему надо посылать каждые 12 часов сообщение на Email ума себе не приложу. Конечно можно было бы сделать проверку на необходимость рассылки при открытии сайта, но это слишком грамоздко и не всегда может удасться в срок.
no image

Аноним

23 ноября, 03:09
479

Нет комментариев

Добавить комментарий
Вы не можете оставлять комментарии. Чтобы добавить комментарий, залогиньтесь или зарегистрируйтесь
Вы не можете голосовать. Чтобы проголосовать, залогиньтесь или зарегистрируйтесь

1 ответ

Реализовать отдельную Windows службу.
Периодически опрашивать базу данных на предмет необходимости отсылать email.
Например так:
table Users (Id, Login, ...)
table Notifications (Id, UserId, LastNotificationSend)


-- List of users to send notification
SELECT
    u.Id AS 'UserId',
    u.Login AS 'UserLogin',
    n.Id AS 'NotificationId'
FROM
    Notifications n
    RIGHT JOIN
        Users u
    ON
        u.Id = n.UserId
WHERE
    n.LastNotificationSend > DATEADD(HOUR, -12, GETDATE());

-- Update notification record
UPDATE
    Notifications
SET
    LastNotificationSend = GETDATE()
WHERE
    Id = @NotificationId

-- Create new notification record
INSERT
    Notifications
    (UserId,
    LastNotificationSend)
VALUES
    (@UserId,
    GETDATE());

 
         <a href="http://www.databasejournal.com/features/mssql/article.php/3626056/Database-Mail-in-SQL-Server-2005.htm" rel="nofollow">написано про настройку DB mail</a> <br><a href="http://msdn.microsoft.com/en-us/library/ms187910.aspx" rel="nofollow">создания sql-job'а</a><br><br>В общих чертах:<br>1. Настраиваете Database Mail<br>2. Создаете хранимку, которая будет использовать msdb.dbo.sp_send_dbmail (<a href="http://msdn.microsoft.com/ru-ru/library/ms190307.aspx" rel="nofollow">msdn</a>)<br>3. Создаете Job, который будет вызывать эту хранимку и вешаете на этот Job шедулер (делается это там же при создании Job'а)

no image

Аноним

23 ноября, 03:35

Нет комментариев

Добавить комментарий
Вы не можете отвечать на вопросы. Чтобы ответить на вопрос, пожалуйста залогиньтесь или зарегистрируйтесь
Работа в Украине
Вакансии от WORK.ua
Senior Data Scientist
Львов, Eleks
Системный администратор
Калиновка, Глікохім, ТОВ
QA Senior/Team Lead
Одесса, ILAG