[英]Auto email notifications in c# dotnet using sql server 2005
我在ERP應用程序中有一個要求,(應用程序是使用c#和sql server 2005在asp.net4.0中開發的)
當我們從客戶收到訂單時,我們使用唯一的序列號注冊訂單(序列號是自動生成的主鍵)現在我們想要發送一個通知,基本上是一封電子郵件,說明您的訂單已經注冊了序列號:XXXXXX。
我能知道什么是最好的解決方案嗎????
我是否必須通過數據庫或應用程序發送電子郵件。
請幫我 !!!
ScottGu有一篇很棒的文章 。 它有點舊了,但這就是他所說的:
.NET 2.0在System.Net.Mail代碼命名空間中包含更豐富的Email API支持。 我已經看到人們想知道如何開始使用它的一些問題。 以下是一個簡單的片段,介紹如何從“sender@foo.bar.com”向多個電子郵件收件人發送電子郵件(請注意,To a CC屬性是集合,因此可以處理多個地址目標):
MailMessage message = new MailMessage(); message.From = new MailAddress("sender@foo.bar.com"); message.To.Add(new MailAddress("recipient1@foo.bar.com")); message.To.Add(new MailAddress("recipient2@foo.bar.com")); message.To.Add(new MailAddress("recipient3@foo.bar.com")); message.CC.Add(new MailAddress("carboncopy@foo.bar.com")); message.Subject = "This is my subject"; message.Body = "This is the content"; SmtpClient client = new SmtpClient(); client.Send(message);
System.Net.Mail從標准.NET配置系統中讀取SMTP配置數據(因此,對於ASP.NET應用程序,您可以在應用程序的web.config文件中對其進行配置)。 以下是如何配置它的示例:
<system.net> <mailSettings> <smtp from="test@foo.com"> <network host="smtpserver1" port="25" userName="username" password="secret" defaultCredentials="true" /> </smtp> </mailSettings> </system.net>
您應該使用sp_send_db_mail
並且絕對不要嘗試在C#應用程序中實例化“SMTP”類的一種或另一種形式。 原因很多,但主要是:
sp_send_db_mail
的調用必須放在注冊序列號的同一個DB事務中。 如果注冊回滾,則永遠不會發送郵件。 sp_send_db_mail
調用之后)可以確保這一點,還可以提供跟蹤和日志記錄以進行故障排除(無法傳遞哪些電子郵件以及原因)。 sp_send_db_mail
確保這一點,實際的郵件傳遞發生在您的事務完成后,並且不以任何方式涉及C#客戶端。 你絕對可以使用C#發送電子郵件。 這是關於如何做到這一點的全面文章:
http://www.emailarchitect.net/easendmail/kb/csharp.aspx
基本上我所做的是創建一個包裝器函數,使用為我的環境設計的自定義設置發送電子郵件變得非常簡單。 例如,您可以創建一個接受新序列號的方法,並根據該方法查找所有信息。 然后,您可以傳遞新值並將自動格式化的電子郵件發送給客戶。
你絕對可以做到這兩點(只要SQL是2005+)
看到這個討論:
從您的應用程序中發送郵件非常簡單:
System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
message.To.Add("luckyperson@online.microsoft.com");
message.Subject = "This is the Subject line";
message.From = new System.Net.Mail.MailAddress("From@online.microsoft.com");
message.Body = "This is the message body";
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient("yoursmtphost");
smtp.Send(message);
如果要以最小的努力發送電子郵件通知,請使用數據庫郵件(配置它!)和sp_send_mail。 您將能夠發送包含可能的查詢結果的簡單文本消息作為附件。
如果您需要使用公司徽標圖像構建.NET Windows服務(或ConsoleApp並安排它)的豐富HTML。 我建議您使用Actionmailer.NET Standalone使用MVC邏輯,模板和Razor引擎構建HTML消息。 使用Actionmailer.NET Standalone,您可以在不使用IIS的情況下使用它。 見: http : //geeksharp.com/2011/07/06/actionmailer-0-6-released/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.