1. 私が見た UFIDA ソフトウェア U8 Manufacturing (デモ版) など、outLook が提供する送信ソフトウェアを使用します。このソフトウェアでは、outLook の ActiveX コンポーネントを呼び出すことによって電子メール機能が送信されます。 利点: 開発が簡単です。 欠点: に依存します。 Outlook コンポーネント、電子メールを送信するための SMTP メール サービスの
コードは次のとおりです:
Private Sub Send()
outObj を新しい Outlook.Application() として暗くする
Outlook.MailItemClass としてアイテムをディムする
アイテム = outObj.CreateItem(0)
item.To = "
[email protected] "
項目.件名 = "こんにちは"
item.body = "地獄"
Item.Attachments.Add("C:abc.txt")
項目.送信()
End Sub
2. WEB 開発。ASP.NET の System.Web.Mail を参照してください。親切
System.Web.Mail 名前空間には、CDOSYS (Collaboration Data Objects for Windows 2000) メッセージ コンポーネントを使用してメッセージを作成および送信できるようにするクラスが含まれています。メール メッセージは、Microsoft Windows 2000 に組み込まれている SMTP メール サービス、または任意の SMTP サーバーを通じて配信されます。この名前空間のクラスは、ASP.NET または任意のマネージド アプリケーションで使用できます。
MailAttachment は、電子メールの添付ファイルを作成するためのプロパティとメソッドを提供します。
MailMessage は、電子メール メッセージを構築するためのプロパティとメソッドを提供します。
SmtpMail は、Windows 2000 の Collaboration Data Objects (CDOSYS) メッセージ コンポーネントを使用してメッセージを送信するためのプロパティとメソッドを提供します。
メールは、Microsoft Windows 2000 に組み込まれている SMTP メール サービス、または任意の SMTP サーバーを通じて配信できます。 System.Web.Mail 名前空間の型は、ASP.NET または任意のマネージド アプリケーションで使用できます。
SMTP サーバーの設定: 一部の無料電子メール プロバイダーは、電子メールを送信するときに、Smtp ユーザー認証の問題を考慮する必要があります。ローカルサーバーではない場合は、送信時にあまり使用しないほうがよいでしょう。もう 1 つは、SMTP サーバーの送信量が多すぎる可能性があります。スパムだと思われますが、サービス拒否コードは次のとおりです。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Button1.Click を処理します
mailObj を New MailMessage() として薄暗くする
SmtpMail としての Dim smtp
'SMTPサーバーの名前を定義します
smtp.SmtpServer = "smtp.XXX.com"
'メール送信アドレスを定義する
mailObj.From = "
[email protected] "
'メール受信アドレスを定義する
mailObj.To = "
[email protected] "
'メールのBCCアドレスを定義します
mailObj.Bcc= "
[email protected] "
'電子メールのカーボンコピーアドレスを定義します
mailObj.Cc = "
[email protected] "
'メールの件名を定義します
mailObj.Subject = "件名"
'メールの本文を定義します
mailObj.Body = "メール本文!"
'メールはHTML形式で送信されます
mailObj.BodyFormat = MailFormat.Html
'メールの制限レベルを定義します。ここでは高く設定します
mailObj.Priority = MailPriority.High
'送信したメールに添付ファイルを添付する
mailObj.Attachments.Add(New MailAttachment("c:aa.doc"))
smTp.Send(mailObj)
End Sub
3. VB.NET または C# での Windows アプリケーションの開発で System.Net.Sockets を使用する
これも SMTP プロトコルに基づいています 1. SMTP プロトコルの概要
1. クライアントは、サーバーのポート 25 経由でサーバーへの TCP/IP 接続を確立します: 220 server.com Simple Mail Transfer Service Ready
2. クライアントは、「HELO」コマンドを使用して送信側クライアントを識別します: HELO server.com
サーバー側: 250server.com
3. クライアントが MAIL コマンドを送信すると、サーバーは OK で応答し、クライアントを受信する準備ができていることを示します。 MAIL FROM: <
[email protected] >
サーバー側: 250 OK
4. クライアントは受信者を識別するために RCPT コマンドを送信し、サーバーは受信者の電子メール クライアントを受け入れるかどうかを応答します。 RCPT TO: <
[email protected] >
サーバー側: 250 OK
5. ネゴシエーションが完了したら、DATA コマンドを使用して電子メール クライアントに DATA を送信します。
サーバー側: 354 メール入力開始: <CRLF>.<CRLF> で終了
6. クライアントは入力コンテンツを で終了し、それをクライアントに送信します: Subject: <CRLF>
コンテンツ<CRLF>
.<CRLF>
7. クライアントは QUIT コマンドを使用して終了します。
クライアント: やめます
サーバー側: 250 のserver.com が送信チャネルを閉じます。
長所: これをベースに独自のコンポーネントを開発できます。 短所:
プログラムの量が比較的多くなります。
文字列としての Dim sendData
Dim szData As Byte()
文字列としての暗い CRLF
CRLF = "rn"
'サーバー ポート 25 への接続を作成します
新しい TcpClient として Dim SmtpServ (txtsmtp.Text, 25)
lstlog.Items.Clear()
'サーバーの初期情報を表示します
NetworkStream として NetStrm を暗くする
NetStrm = SmtpServ.GetStream()
Dim RdStrm As New StreamReader(SmtpServ.GetStream())
If RdStrm.ReadLine() <> "" then lstlog.Items.Add(RdStrm.ReadLine())
'
sendData = "HELO サーバー" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'送信者にマークを付ける
sendData = "メール送信元: " + "<" + txtfrom.Text + ">" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'受信者にマークを付ける
sendData = "RCPT TO: " + "<" + txtTo.Text + ">" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'コンテンツの送信準備
sendData = "データ" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'トピックを送信
sendData = "件名: " + txtsub.Text + CRLF
'コンテンツを送信
sendData = sendData + txtmsg.Text + CRLF
'送信終了
送信データ = 送信データ + "." + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'終了
sendData = "終了" + CRLF
szData = System.Text.Encoding.ASCII.GetBytes(sendData.ToCharArray())
NetStrm.Write(szData, 0, szData.Length)
lstlog.Items.Add(RdStrm.ReadLine())
'接続を閉じます
NetStrm.Close()
RdStrm.Close()
lstlog.Items.Add("接続が閉じられました")
lstlog.Items.Add("送信成功")
4. CDONTS、IIS SMTP に付属する基本的な送信コンポーネント
2000 がインストールされている限り、Microsoft はこのコンポーネントをすでに提供しているため、特にダウンロードする必要はありません。
利点: コンポーネントはオペレーティング システムによって提供されます。 欠点: 機能が低く、スケーラビリティが低いです
。
Mymail.From = *** '手紙の差出人のメールボックス
Mymail.To = *** 'レターの受信者のメールボックス
Mymail.CC = *** 'Cc
Mymail.BCC = *** 'バインド送信
Mymail.Subject = *** 'レターの件名
Mymail.Body = *** 'レターの本文
'優先度を設定します。0-重要ではない、1-一般、2-重要です。
Mymail.Importance = 2
Mymail.Send()
Mymail = Nothing
5. JMail コンポーネントを使用する
Jmailには次のような特徴があります。
(1) 添付ファイルを送信できます。
(2) 詳細なログ機能により、問題を確認できます。
(3) 電子メール送信の優先順位を設定します。
(4) HTML や TXT でのメール送信など、複数の形式でのメール送信をサポートします。これは無料のコンポーネントです。
(5) ブラインドメール/(CC) カーボンコピー/緊急レターを送信する機能。
(6) 最も重要なことは、コンポーネントは無料であり、料金を支払う必要がないため、使用する価値があります。
Web サイト:
http://www.dimac.net/ 、現在のバージョンは 4.3 です。
JMail コンポーネントの共通属性:
本文 メール本文
通話のログ記録 デバッグ用のログ記録
優先度 電子メールの優先度 (1 ~ 5)
送信者送信者
ServerAddress SMTP サーバーの IP アドレスまたは名前
件名の電子メール タイトル
JMail コンポーネントの一般的なメソッド
:
AddAttachment は添付ファイルを指定します
AddRecipient は受信者を追加します
AddRecipientBCC 送信者と BCC 受信者のみが知る隠しコピー。
AddRecipientCC CC
Execute が電子メールを送信し
、必要な属性とメソッドを理解した後、残りの部分はユーザーが入力した電子メールを受け取り、それをパラメーターとして AddRecipient メソッドに渡し、必要に応じて残りの属性を入力し、最後に Execute で送信します。方法。例:
Dim JMail
JMail = Server.CreateObject("JMail.SMTPMail")
JMail.Logging = True
JMail.ServerAddress = "202.96.144.48"
JMail.Sender = "
[email protected] "
JMail.Subject = "件名"
JMail.Body = "本文"。
JMail.AddRecipient("
[email protected] ")
JMail.AddAttachment("c:go.gif")
JMail.Priority = 3
JMail.Execute()
JMail = Nothing
要約: どのソリューションを選択するかは、プログラムの目的とニーズによって異なります。この記事では、参考のためにいくつかの例を示します。たとえば、UFIDA ソフトウェア U8 は Outlook コンポーネントを呼び出し、それを独自のソフトウェアに統合します。私が作成した管理システム、つまり独自のコンポーネント (SMTP) も同様に強力ですが、コーディング時間はさらに長くなります。