2010-09-03 32 views
9

Tôi đang xem postmarkapp.com để xử lý việc gửi email từ ứng dụng asp.net mvc 2 của tôi bằng thư viện .net mà họ cung cấp: thư viện dấu bưu điện-dấu chấmChủ đề nền ASP.Net MVC để tạo email và gửi

Trong số documentation họ đề cập đến việc gửi email w/tệp đính kèm có thể mất một chút thời gian và tốt hơn là thực hiện việc này trong công việc nền. Đối với ứng dụng của tôi, tôi có thể gửi bất cứ nơi nào từ 10 đến 500 email được cá nhân hóa một số với một số tập tin đính kèm trong một đợt cho người dùng của tôi.

  • cách tốt nhất để làm xử lý nền này một cách không chặn đối với người dùng quản trị mà khởi xướng việc thành lập và gửi các email này trong ASP.Net MVC là gì?

  • Điều gì xảy ra nếu họ nhấp vào "tạo và gửi email" cho 500 người dùng và đóng trình duyệt trước khi quá trình đó hoàn tất?

Cảm ơn bạn đã được trợ giúp! Mới để ASP.Net MVC

Trả lời

17

Bạn có thể đẻ trứng một chủ đề mới và gửi mail trong luồng này:

[HttpPost] 
[Authorize(Roles = "Administrator")] 
public ActionResult SendMails() 
{ 
    new Thread(() => 
    { 
     // Send the emails here 
    }).Start(); 
    return View(); 
} 

Nếu người dùng đóng trình duyệt chủ đề này sẽ tiếp tục chạy cho đến khi nó hoàn thành hoặc AppDomain tắt . Hành động sẽ trả về một chế độ xem ngay lập tức và nó sẽ không chặn. Cũng có thể là một ý tưởng tốt để đặt một số cờ vào cơ sở dữ liệu mà một hoạt động gửi email đang chạy để nếu người quản trị nhấp hai lần vào nút mà người dùng của bạn không nhận được nhiều thư.

Nếu bạn muốn có giải pháp mạnh mẽ hơn, bạn có thể xem MSMQ. Và here's a tutorial sẽ giúp bạn bắt đầu nhanh chóng.

+0

Tác vụ> Chủ đề (nếu .NET 4) – Necros

+2

thực tiễn không tốt là gửi email (mở chuỗi) trong phương pháp điều khiển. nó sẽ là một lớp tĩnh !! – vlukham

+0

tại sao nó là một thực tế xấu? –

Các vấn đề liên quan