2010-03-08 24 views
5

Tôi muốn lên lịch email với mã asp.net và C#.lịch trình Email trong asp.net, C#

ý tưởng hoặc mã cơ bản cho email lịch biểu là gì?

+2

@Will, Tại sao bạn không thể lên lịch gửi email vào một ngày sau đó? Đó là một yêu cầu hoàn toàn hợp pháp - họ có thể gửi email lúc 6 giờ sáng từ trang web của họ, nhưng không muốn phải thực sự nhấn "Gửi" vào thời điểm đó. Email sẽ được thiết lập trước, thử nghiệm, v.v., và sau đó được lên kế hoạch để được gửi để nó nằm trong người dùng trong hộp đẹp và sớm. –

+0

@zaph được rồi, giả sử trong một phút đó là những gì anh ấy thực sự hỏi (đã được chia thành bản thân nó). Bạn phải 1) viết một ứng dụng gửi email và sau đó 2) chuyển các email đó đến ứng dụng.Tôi đoán lực đẩy của nhận xét của tôi là bạn không thể sắp xếp một email một cách kỳ diệu. Có, bạn có thể tạo một ứng dụng mà một số ngày sau đó gửi một email, nhưng bạn phải viết điều đó. Ngoài ra, hãy lừa đảo trên toàn bộ trang web. – Will

Trả lời

4

Sử dụng bộ lập lịch biểu có lẽ? Quartz.NET là một mẫu khá tốt.

Tôi cho rằng bạn đã biết cách gửi thư, vì vậy chỉ cần lên lịch công việc mới và cuộn với nó.

2

Hãy thử chỉ viết một ứng dụng bảng điều khiển đơn giản gửi email và sử dụng Windows Task Scheduler để chạy nó khi bạn cần. Gửi một email là một nhiệm vụ khá chuẩn, như Will đã nói, có rất nhiều câu hỏi tương tự liên quan đến nó ở đây, nhưng nếu bạn có một cái nhìn tại không gian tên System.Net.Mail, điều đó sẽ giúp bạn bắt đầu.

+0

Tôi không muốn khởi động máy tính của mình mọi lúc. tôi muốn đặt trên máy chủ lưu trữ của mình. tôi ở lại Ấn Độ và máy chủ tại Hoa Kỳ. tôi không thể cài đặt bất kỳ phần mềm thủ công hoặc ứng dụng giao diện điều khiển nào của họ. Vì vậy, waht tôi nên od? – AjmeraInfo

+1

Nếu tôi hiểu chính xác bạn, bạn muốn kích hoạt một email trên máy chủ mà bạn không thể cài đặt bất kỳ phần mềm nào? Tôi nghĩ rằng tùy chọn duy nhất của bạn có thể là tùy chọn của Albert để chạy nó từ một công việc SQL. –

2

Bạn có thể có bảng cơ sở dữ liệu EmailSchedule (ID, SendTo, Subject, MessageBody, SendDateTime) Khi bạn muốn lên lịch gửi email, hãy ghi vào bảng.

Sau đó, có một quá trình chạy mỗi x phút và gửi tất cả các email nơi SendDateTime < = Bây giờ

Trân

+0

Trong khi cả hai câu trả lời cho đến nay sẽ hoạt động, tôi đã tìm thấy trong quá khứ thiết lập một công việc trong cơ sở dữ liệu khởi động quá trình này để dễ cấu hình và thiết lập hơn là sử dụng các tác vụ đã lên lịch. –

0

Bạn có thể có một bảng trong SQL gọi mailToBeSent hoặc một cái gì đó như thế ... và mỗi lần bạn muốn lên lịch một email, chèn một email vào bảng đó với tất cả các phần tử dữ liệu thích hợp (chủ đề, tới, cc, body etc), và quan trọng nhất là có một trường cho ngày/giờ được gửi và chạy một công việc SQL cứ mỗi 5/10/15 phút hoặc bất cứ thứ gì bạn chọn, và kiểm tra bảng đó để gửi thư cần gửi ... gửi tin nhắn và xóa bản ghi thành công.

Tôi biết ai đó sử dụng thiết lập này và nó hoạt động tốt đẹp. Rất tiếc, tôi không có mã của anh ấy, nhưng một vài tìm kiếm trên google cho từng phần của quy trình có thể chứng minh hiệu quả.

Đây là sự bắt đầu: http://www.google.com/search?&q=how+to+use+sql+job+table+to+send+emails Bộ liên kết đầu tiên trông đẹp mắt. Nếu bạn bắt đầu con đường này và cần thêm trợ giúp, hãy cho chúng tôi biết.

+0

ouch. ai đó có thể cho tôi biết lý do tại sao đây là một gợi ý xấu? chúng tôi sử dụng phương pháp này cho một vài ứng dụng và nó hoạt động đẹp ... có gì sai với nó? – Albert

1

Cách đơn giản nhất để khác biệt việc gửi email là lập lịch biểu tác vụ trong công cụ tác vụ được lập lịch của cửa sổ. Nhiệm vụ này là một cuộc gọi đơn giản đến tệp vbs. Tệp vbs này mở url từ ứng dụng web của bạn. Đằng sau url này, hãy đặt một trang web làm công việc được lên lịch của bạn bên trong ứng dụng, trong trường hợp này là việc gửi email. Nó không cần dịch vụ windows, chỉ cần một vbs đơn giản. Trang được gọi là trong ứng dụng của bạn, vì vậy không cần phải làm thêm một số công việc để giao tiếp dữ liệu hoặc xử lý bên ngoài ứng dụng web.

Hy vọng điều này sẽ giúp đỡ,

Kính trọng,

Pierre.

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