iT邦幫忙

0

.NET 網站內定排派送MAIL

您好:
請問一般.NET網站,是否可以針對某一 APSX做 定期排程的方式送MAIL
還是要改成 產生COLSOLE檔,由WIN排程來執行。

想了解 一般往ˇ站的定期處理,是如何做的!
謝謝!

看更多先前的討論...收起先前的討論...
PPTaiwan iT邦好手 1 級 ‧ 2020-10-24 17:23:50 檢舉
可以說一下是想要做什麼?? 要傳什麼東西??

如果要定期傳送 Email 我都用 WinForm 來寫傳送的動作,方法很多 Google 一下應該都有相關類似的,還是去 CodeProject https://www.codeproject.com/ 也可以找到相關的..
noway iT邦研究生 4 級 ‧ 2020-10-25 19:06:45 檢舉
您好:
就定期抓抓資料,有資料,就把資料抓出,派送MAIL給特定人。
您用wINFORM,是透過 微軟的排程來呼叫嗎?我之前有測試WIN排程 呼叫CONSOLE 過。
想確定一下,是否 有用.NET ASPX 來做排程的,謝謝!
PPTaiwan iT邦好手 1 級 ‧ 2020-10-26 00:32:40 檢舉
就使用 WinForm 的時間控制,當到達一定的時間就執行要執行的動作,傳 Email、抓取特定的檔案或是刪除特定的 Temp 檔等等的。用 WinForm 就可以做到很多事情了...

別用 Aspx 來去呼叫一個網頁去執行特定的動作,這樣子的行為是會被笑的,因為這真的不專業。 如果你要用 Winodws 提供的排程來去呼叫,那也是寫 WinForm 主控台應用程式或是 Windows Service 等等,有這幾種可以針對伺服器做進階的動作。
noway iT邦研究生 4 級 ‧ 2020-10-27 10:41:48 檢舉
您好:所以開機後,要讓她啟動該 WINFORM,然後WIN FORM 裡面有 時間控制去跑,不需要透過 WIN的排程??
謝謝!
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
japhenchen
iT邦超人 1 級 ‧ 2020-10-26 07:48:34
最佳解答

用排程或服務比較直接,如果你寫在aspx裡,那就是在排程裡寫個程式去開啟網頁(start https://mysite.com/mail.aspx )也可以,至於會不會被笑,沒人知道的話另常別論

你的問題是卡在不會寫產生郵件的程式嗎?如果是,參考這個我公司的電子報發送器..

static private void sendmail(string 內容, int thisscore, List<alertmail> 收件人 = null)
{
    using (MailMessage msg = new MailMessage())
    {
        msg.IsBodyHtml = true;
        msg.From = new MailAddress(@"MAILER-DAEMON@abcdefg.com.tw", "電子書報刊物 敏感字詞搜尋系統");
        foreach (var em in 收件人.Where(p => p.minscore == thisscore && p.freq > 1))
            msg.To.Add(new MailAddress(em.email));
        msg.Bcc.Add(new MailAddress(@"boss@abcdefg.com.tw"));
        msg.Bcc.Add(new MailAddress(@"manager@gmail.com"));
        msg.BodyEncoding = System.Text.Encoding.UTF8;
        msg.Subject = "abcdefg電子報";
        msg.Body = 內容;
        SmtpClient smtp = new SmtpClient("mail.abcdefg.com.tw", 25);
        smtp.Send(msg);
    }
}

看更多先前的回應...收起先前的回應...
noway iT邦研究生 4 級 ‧ 2020-10-27 10:38:19 檢舉

您好:謝謝, 目前是想先用哪一種方式來處理會比較好。
那連線安全性來說,SQL連線,WEB使用CONFIG (還要編碼), WINDFORM 或CONSOLE會 寫死在程式內嗎?
謝謝!

noway iT邦研究生 4 級 ‧ 2020-10-27 10:38:33 檢舉

您好:謝謝, 目前是想先用哪一種方式來處理會比較好。
那連線安全性來說,SQL連線,WEB使用CONFIG (還要編碼), WINDFORM 或CONSOLE會 寫死在程式內嗎?
謝謝!

nowayVisualStudio對付Console, Service, Web都是一樣的處理方式,連接字串你可以選擇加密存在web.config或app.config裡,應該沒人在程式上直接明文寫死ConnectionString啦

換個角度說,你用web的方式寫,還是要透過一些方式去呼叫那個頁面或服務才能連接資料庫,跟你直接編寫console或service何者安全?

在你的主機沒有被偷或被入侵的情況下,安全顧慮應該很低才對,防駭就多加防火牆吧,在內網執行這個資料庫,就沒有啥問題了(除非有內鬼)

1
glj8989332
iT邦研究生 4 級 ‧ 2020-10-24 17:29:47

手法有很多, 看你的需求

  1. 在ASP.NET網站內部: 可以在網站啟用後, 最簡單是用一個Timer或者完整的三方套件(比如 Quartz.NET) , 安排要做的定時工作
  2. 和ASP.NET應用程式同一台的伺服器: 把定時工作委託給同一台伺服器, 比如用Windows的排程或自己寫Windows Services
  3. 委託別的伺服器: 將要定時的工作交由別的伺服器處理, 比如公司內部機房專屬的伺服器或者雲端伺服器(GCP、AWS)等
noway iT邦研究生 4 級 ‧ 2020-10-25 19:25:14 檢舉

您好: 請問最簡單是用一個Timer,是指在網站運行下,該ASPX 的JS使用 Timer 或 ASPX.CS 使用Timer去 呼叫 該ASPX 或目的APSX 呢?
謝謝!

glj8989332 iT邦研究生 4 級 ‧ 2020-10-25 19:45:17 檢舉

在Global.asax.cs, 通常會有這function, 沒有的話自己加上

 protected void Application_Start()
 {
     // 在這建立你要的Timer
 }

只要ASP.NET網站架上去, 就會執行這個, 且就一次, 不用再另外連aspx去觸發

0
dscwferp
iT邦高手 1 級 ‧ 2020-10-25 11:06:46

參考:
使用 curl 批次檔觸發排程作業網頁
https://blog.darkthread.net/blog/call-schedule-task-webpage-with-curl-batch/

noway iT邦研究生 4 級 ‧ 2020-10-25 19:20:11 檢舉

您好:所以 這是先下在CURL安裝後,寫一個韓cURL 的cmd檔, 再透過WN排程 呼叫 CMD檔,來完成的嗎?
謝謝!

dscwferp iT邦高手 1 級 ‧ 2020-10-25 19:57:55 檢舉

yes

我要發表回答

立即登入回答