2010-03-08 23 views
5

Ben e-posta asp.net ve C# kodu ile zamanlamak istiyorum.zamanlama asp.net, C#

Zamanlama e-postası için temel fikir veya kod nedir?

+2

@Will, Neden daha sonraki bir tarihte gönderilecek bir e-posta planlamıyorsunuz? Bu gayet meşru bir gerekliliktir - sabah saat 6'da bir e-postayı sitelerine göndermek isteyebilirler, ancak o anda "Gönder" e basmak istemezler. E-posta önceden ayarlanmış, test edilmiş, vb. Ve daha sonra gelen kutularda kullanıcılara ve daha erkene oturması için gönderilmek üzere planlanmıştı. –

+0

@zaph tamam, aslında sorduğu bir dakikayı varsayın (kendime böldüm). 1) e-posta gönderen bir uygulama yazmanız ve daha sonra 2) bu e-postaları uygulamaya geçirmeniz gerekiyor.Benim yorumumun itkisi, bir e-postayı sihirli bir şekilde programlayamamanızdır. Evet, daha sonraki bir tarihte bir e-posta gönderen, ancak bunu yazmanız gereken bir uygulama oluşturabilirsiniz. Ayrıca, tüm site üzerinde dupes. – Will

cevap

4

Belki de bir zamanlayıcı kullanın? Quartz.NET oldukça iyi bir tanesi.

Zaten posta göndermeyi bildiğinizi sanıyorum, bu nedenle yeni bir iş planlayın ve onunla yuvarlayın.

2

Sadece e-posta gönderen ve gerektiğinde çalıştırmak için Windows Görev Zamanlayıcısı'nı kullanan basit bir konsol uygulaması yazmayı deneyin. Bir e-posta gönderme oldukça standart bir görevdir, Will'in de dediği gibi, burada zaten bu konuyla ilgili birçok benzer soru vardır, ancak System.Net.Mail ad boşluğuna bir göz atın, bu size başlamanızı sağlamalıdır.

+0

Bilgisayarımı her zaman başlatmak istemiyorum. Hosting sunucumda ayarlamak istiyorum. ABD'de Hindistan'da ve sunucuda kalıyorum. Ben herhangi bir manuel yazılım veya konsol uygulaması yüklenemez. ne yapmalıyım? – AjmeraInfo

+1

Sizi doğru anlıyorsam, herhangi bir yazılımı yükleyemediğiniz bir sunucudaki e-postayı silmek mi istiyorsunuz? Tek seçeneğin Albert'ın bir SQL işinden çalıştırma seçeneği olabileceğini düşünüyorum. –

2

Bir veritabanı tablonuz olabilir. EmailSchedule (ID, SendTo, Konu, MessageBody, SendDateTime) Gönderilecek bir e-posta planlamak istediğinizde tabloya yazın.

Sonra SendDateTime < = Şimdi

Selamlar

+0

Şimdiye kadar her iki yanıt işe yarayacak olsa da, geçmişte veritabanında, bu işlemi, zamanlanmış görevler kullanmaktan daha kolay bir şekilde yapılandırmak ve kurmak için bir iş kurmanın yolunu buldum. –

0

Sen SQL tablo olabilir her x dakikada bir çalışır ve tüm e-postaları gönderen bir sürece sahip mailToBeSent veya böyle bir şey ... ve her defasında denilen Bir e-posta planlamak, tüm uygun veri öğeleriyle (konu, hedef, cc, gövde vb.) o tabloya bir e-posta eklemek ve en önemlisi gönderilecek tarih/saat için bir alana sahip olmak ve bir SQL işi çalıştırmak istediğinizde her 5/10/15 dakika veya ne seçerseniz seçin ve gönderilmesi gereken posta için bu tabloyu kontrol edin ... mesajı gönderin ve başarıyı siler.

Bu kurulumu kullanan birisini tanıyorum ve güzel çalışıyor. Ne yazık ki onun kodu yok, ancak sürecin her parçası için birkaç google arama verimli olabilir.

İşte bir başlangıç: http://www.google.com/search?&q=how+to+use+sql+job+table+to+send+emails İlk bağlantı dizisi iyi görünüyor. Bu yola başlarsanız ve biraz daha yardıma ihtiyacınız varsa bize bildirin.

+0

ouch. Birisi bana bunun neden kötü bir öneri olduğunu söyleyebilir mi? Bu yöntemi birkaç uygulama için kullanıyoruz ve güzel çalışıyor ... bunun nesi var? – Albert

1

E-postanın gönderilmesini farklılaştırmanın en basit yolu, bir pencereyi zamanlanmış görevler aracında bir görev zamanlamaktır. Bu görev, bir vbs dosyasına basit bir çağrıdır. Bu vbs dosyası web uygulamanızdan bir URL açın. Bu URL'nin arkasında, planlanmış çalışmanızı uygulama içinde yapan bir web sayfası oluşturun; bu durumda e-postaların gönderilmesi. Windows servisi gerektirmez, sadece basit bir vbs. Çağrılan sayfa uygulamanızdadır, bu nedenle web uygulamasının dışında veri veya işlem yapmak için fazladan iş yapmaya gerek yoktur. Bu yardımcı olacaktır

Umut,

Selamlar,

Pierre.