NonSoft

メール送信/受信DLL(VB.NET/C#.NET)


 ダウンロード

メール送信(SMTP)とメール受信(POP:削除等のコマンドも可)ライブラリ(DLL)、SSL/TLS対応

ダウンロード  使用例(VB.NET)  使用例(C#.NET) 
====================================================================================================
【タイトル     】メール送信/受信DLL(VB.NET/C#.NET)
【Version      】1.0.1.1
【ファイル     】NonMailDll.zip
【圧縮ファイルの中身】NonMailNet.dll、ReadMe.txt、サンプルソース
【動作確認     】Windows8/Windows7/XP/2000
【必要ソフト    】Microsoft .NET Framework Version 2.0
【ソフト種別    】フリーソフト(寄付歓迎)
【作者/著作権者  】のん
【作者への連絡先  】http://nonsoft.la.coocan.jp/
【最近の主な変更(1) 】添付ファイル(SMTP)のContent-Typeを指定する機能を追加
【最近の主な変更(2) 】添付ファイル(POP)をJIS-7bitでデコードする機能を追加
【最近の主な変更(3) 】添付ファイル(POP)をQuoted-Printableでデコードする機能を追加
【最近の主な変更(4) 】CC/BCCにメール送信する機能と受信メールのCCを解析する機能を追加
【最近の主な変更(5) 】添付ファイル送信バウンダリ修正、添付ファイル受信処理修正
====================================================================================================
1.はじめに
  本プログラムをダウンロード頂きまして誠にありがとうございます。
  本プログラムは、メール送信およびメール受信するDLLです。
  メール送信は、[SMTP over SSL(465)/TLS(587)]のセキュリティ(SMTP)サーバーに対応しています。
  メール受信は、[POP over SSL(995)]のセキュリティ(POP)サーバーに対応しています。

  SMTP認証(AUTH)はLOGIN、PLAIN、CRAM-MD5に対応しています。
  SMTP認証(POP before SMTP)はPOPサーバーでSTATコマンドを実行後にSMTP送信する事で可能です。

  <補足>
  gmail(googleメール:ポート番号=465/587/995)で動作確認しました。
  yahoo(yahoo メール:ポート番号=587/110    )で動作確認しました。
  nifty(nifty メール:ポート番号=25 /587/110)で動作確認しました。

  <関連プログラム>
  フォルダ監視人(FoldCheckEvt.exe)
  フォルダ内のファイル更新(未更新)を監視し、更新通知(メール等)と指定プログラムの実行をするツール
  (FTP対応)です。監視ファイル新/旧の差分のみをメール通知や指定プログラムに渡す事が出来ます。
  PC状況メール通知(PcEvMail.exe)
  PC使用状況通知(PC起動/PC終了/ログイン/ログアウト/指定ファイル更新時にログ出力およびメール送信)
  ファイル更新時やPC起動、PC終了、ログイン、ログアウトを監視しメールで通知するツールです。
  子供のパソコンの使用状況確認や遠方の方が元気にパソコンを使用しているかを確認する目的として。

2.インストール方法/アンインストール方法
  本プログラムはインストール操作が必要ありません。
  アンインストール操作も必要ありませんので、本プログラム一式を削除してください。

  VS2005(Microsoft .NET Framework Version 2.0)がインストールされている必要があります。

  -------------------------------------------------------------------------------------
  ※VS2010(Microsoft .NET Framework Version 4.0)版は次のURLからダウンロード出来ます。
  VS2010(Microsoft .NET Framework Version 4.0)版のダウンロード
  -------------------------------------------------------------------------------------

3.著作権・ライセンス
  本プログラムの全ての著作権は「のん」が所有しています。
  本プログラムを転載する場合は著作権所有者の許可が必要となります。
  (NonSoftの紹介リンクは問題ありませんので宜しくお願いします)
  また、著作権所有者が許可したサイトでのみダウンロードが可能となります。
  再配布(同梱して配布)は可能です。商用利用についての制限はありません。

  本プログラムはフリーライセンス(寄付歓迎)です。
  本プログラムを長期間使用される場合は、寄付やホームページ紹介等してください。
  寄付はこちらでお願いします。http://nonsoft.la.coocan.jp/kifu.html

4.免責事項
  本プログラムが原因による損害・問題に対し一切の責任を負えません。
  ご利用者の責任の範囲内でお使いください。

5.作者への問合せについて
  作者への問合せはメールのみとさせて頂きます。
  問合せ内容によっては回答出来ない場合もございますので予めご了承願います。
  また、作者不在時または問い合わせ数が多い場合など、
  回答に日数がかかる場合がございますので予めご了承願います。

<使用例(VB.NET)>
Dim resp As String = ""
Dim fadr As String = ""
Dim tadr As String = ""
Dim cadr As String = ""
Dim subj As String = ""
Dim body As String = ""
Dim fils As String = ""
Dim pths As String = ""
Dim objNonMail As New NonMailNet.NonMailClass()

' メール送信例-----------------------------------------------------------------------
' Google SMTP AUTH LOGIN    PORT=465(SSL有り) 添付ファイル無し
objNonMail.SmtpSend( _
    "smtp.gmail.com", 465, "user@gmail.com", "password", "user@gmail.com", _
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com", _
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com", _
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com", _
    "タイトル", "本文", "", "LOGIN", True, "SSL")

' Google SMTP AUTH PLAIN    PORT=587(TLS有り) 添付ファイル有り
objNonMail.SmtpSend( _
    "smtp.gmail.com", 587, "user@gmail.com", "password", "user@gmail.com", _
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com", _
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com", _
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com", _
    "タイトル", "本文", "C:\Temp\Test1.dat" & vbCrLf & "C:\Temp\Test2.dat", _
    "PLAIN", True, "TLS")

' Yahoo  SMTP AUTH LOGIN    PORT=587(SSL無し) 添付ファイル有り
objNonMail.SmtpSend( _
    "smtp.mail.yahoo.co.jp", 587, "user", "password", "user@yahoo.co.jp", _
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com", _
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com", _
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com", _
    "タイトル", "本文", "C:\Temp\Test1.dat" & vbCrLf & "C:\Temp\Test2.dat", _
    "LOGIN", False, "")

' Nifty  SMTP AUTH CRAM-MD5 PORT=587(SSL無し) 添付ファイル有り(Content-type指定)
' 添付ファイルにContent-typeを指定する時はファイルPATHの後に"|"区切りで指定する
objNonMail.SmtpSend( _
    "smtp.nifty.com", 587, "user", "password", "user@nifty.com", _
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com", _
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com", _
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com", _
    "タイトル", "本文", "C:\Temp\Test1.jpg|image/jpeg" & vbCrLf & _
                        "C:\Temp\Test2.pdf|application/pdf", _
    "CRAM-MD5", False, "")

' Nifty  SMTP AUTH 無し     PORT=25 (SSL無し) 添付ファイル有り(Content-type指定)
' 添付ファイルにContent-typeを指定する時はファイルPATHの後に"|"区切りで指定する
objNonMail.SmtpSend( _
    "smtp.nifty.com", 25, "user", "password", "user@nifty.com", _
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com", _
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com", _
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com", _
    "タイトル", "本文", "C:\Temp\Test1.jpg|image/jpeg" & vbCrLf & _
                        "C:\Temp\Test2.pdf|application/pdf", _
    "", False, "")

' メール受信例-----------------------------------------------------------------------
' Google POP(APOP無し) PORT=995(SSL有り) -- "RETR [メール番号]"
resp = objNonMail.PopRecv( _
    "pop.gmail.com", 995, "user@gmail.com", "password", _
    "RETR 1", False, True, "SSL")
objNonMail.PopData(resp, fadr, tadr, cadr, subj, body, fils, pths)

' Yahoo  POP(APOP無し) PORT=110(SSL無し) -- "RETR [メール番号]"
resp = objNonMail.PopRecv( _
    "pop.mail.yahoo.co.jp", 110, "user", "password", _
    "RETR 1", False, False, "")
objNonMail.PopData(resp, fadr, tadr, cadr, subj, body, fils, pths)

' Nifty  POP(APOP有り) PORT=110(SSL無し) -- "RETR [メール番号]"
resp = objNonMail.PopRecv( _
    "pop.nifty.com", 110, "user", "password", _
    "RETR 1", True, False, "")
objNonMail.PopData(resp, fadr, tadr, cadr, subj, body, fils, pths)

' メール削除例-----------------------------------------------------------------------
' Google POP(APOP無し) PORT=995(SSL有り) -- "DELE [メール番号]"
resp = objNonMail.PopRecv( _
    "pop.gmail.com", 995, "user@gmail.com", "password", _
    "DELE 1", False, True, "SSL")

' Yahoo  POP(APOP無し) PORT=110(SSL無し) -- "DELE [メール番号]"
resp = objNonMail.PopRecv( _
    "pop.mail.yahoo.co.jp", 110, "user", "password", _
    "DELE 1", False, False, "")

' Nifty  POP(APOP有り) PORT=110(SSL無し) -- "DELE [メール番号]"
resp = objNonMail.PopRecv( _
    "pop.nifty.com", 110, "user", "password", _
    "DELE 1", True, False, "")

' その他のPOPサーバ用コマンド(代表的なコマンド)--------------------------------------
' メール有無チェック(STAT:メール数とサイズを取得)
resp = objNonMail.PopRecv( _
    "pop.nifty.com", 110, "user", "password", _
    "STAT", True, False, "")

' メール有無チェック(LIST:メール番号とサイズの一覧を取得)
resp = objNonMail.PopRecv( _
    "pop.nifty.com", 110, "user", "password", _
    "LIST", True, False, "")

' メール有無チェック(UIDL:メール毎のUIDLの一覧を取得)
resp = objNonMail.PopRecv( _
    "pop.nifty.com", 110, "user", "password", _
    "UIDL", True, False, "")
' -----------------------------------------------------------------------------------

<使用例(C#.NET)>
String resp = "";
String fadr = "";
String tadr = "";
String cadr = "";
String subj = "";
String body = "";
String fils = "";
String pths = "";
NonMailNet.NonMailClass objNonMail = new NonMailNet.NonMailClass();

// メール送信例----------------------------------------------------------------------
// Google SMTP AUTH LOGIN    PORT=465(SSL有り) 添付ファイル無し
objNonMail.SmtpSend(
    "smtp.gmail.com", 465, "user@gmail.com", "password", "user@gmail.com",
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com",
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com",
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com",
    "タイトル", "本文", "", "LOGIN", true, "SSL");

// Google SMTP AUTH PLAIN    PORT=587(TLS有り) 添付ファイル有り
objNonMail.SmtpSend(
    "smtp.gmail.com", 587, "user@gmail.com", "password", "user@gmail.com",
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com",
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com",
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com",
    "タイトル", "本文", @"C:\Temp\Test1.dat" + "\n" + @"C:\Temp\Test2.dat",
    "PLAIN", true, "TLS");

// Yahoo  SMTP AUTH LOGIN    PORT=587(SSL無し) 添付ファイル有り
objNonMail.SmtpSend(
    "smtp.mail.yahoo.co.jp", 587, "user", "password", "user@yahoo.co.jp",
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com",
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com",
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com",
    "タイトル", "本文", @"C:\Temp\Test1.dat" + "\n" + @"C:\Temp\Test2.dat",
    "LOGIN", false, "");

// Nifty  SMTP AUTH CRAM-MD5 PORT=587(SSL無し) 添付ファイル有り(Content-type指定)
// 添付ファイルにContent-typeを指定する時はファイルPATHの後に"|"区切りで指定する
objNonMail.SmtpSend(
    "smtp.nifty.com", 587, "user", "password", "user@nifty.com",
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com",
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com",
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com",
    "タイトル", "本文", @"C:\Temp\Test1.jpg|image/jpeg" + "\n" + 
                        @"C:\Temp\Test2.pdf|application/pdf",
    "CRAM-MD5", false, "");

// Nifty  SMTP AUTH 無し     PORT=25 (SSL無し) 添付ファイル有り(Content-type指定)
// 添付ファイルにContent-typeを指定する時はファイルPATHの後に"|"区切りで指定する
objNonMail.SmtpSend(
    "smtp.nifty.com", 25, "user", "password", "user@nifty.com",
    "to@gmail.com,to@yahoo.co.jp,to@nifty.com",
    "cc@gmail.com,cc@yahoo.co.jp,cc@nifty.com",
    "bcc@gmail.com,bcc@yahoo.co.jp,bcc@nifty.com",
    "タイトル", "本文", @"C:\Temp\Test1.jpg|image/jpeg" + "\n" + 
                        @"C:\Temp\Test2.pdf|application/pdf",
    "", false, "");

// メール受信例----------------------------------------------------------------------
// Google POP(APOP無し) PORT=995(SSL有り) -- "RETR [メール番号]"
resp = objNonMail.PopRecv(
    "pop.gmail.com", 995, "user@gmail.com", "password",
    "RETR 1", false, true, "SSL");
objNonMail.PopData(resp, ref fadr, ref tadr, ref cadr, ref subj, ref body, ref fils, ref pths);

// Yahoo  POP(APOP無し) PORT=110(SSL無し) -- "RETR [メール番号]"
resp = objNonMail.PopRecv(
    "pop.mail.yahoo.co.jp", 110, "user", "password",
    "RETR 1", false, false, "");
objNonMail.PopData(resp, ref fadr, ref tadr, ref cadr, ref subj, ref body, ref fils, ref pths);

// Nifty  POP(APOP有り) PORT=110(SSL無し) -- "RETR [メール番号]"
resp = objNonMail.PopRecv(
    "pop.nifty.com", 110, "user", "password",
    "RETR 1", true, false, "");
objNonMail.PopData(resp, ref fadr, ref tadr, ref cadr, ref subj, ref body, ref fils, ref pths);

// メール削除例----------------------------------------------------------------------
// Google POP(APOP無し) PORT=995(SSL有り) -- "DELE [メール番号]"
resp = objNonMail.PopRecv(
    "pop.gmail.com", 995, "user@gmail.com", "password",
    "DELE 1", false, true, "SSL");

// Yahoo  POP(APOP無し) PORT=110(SSL無し) -- "DELE [メール番号]"
resp = objNonMail.PopRecv(
    "pop.mail.yahoo.co.jp", 110, "user", "password",
    "DELE 1", false, false, "");

// Nifty  POP(APOP有り) PORT=110(SSL無し) -- "DELE [メール番号]"
resp = objNonMail.PopRecv(
    "pop.nifty.com", 110, "user", "password",
    "DELE 1", true, false, "");

// その他のPOPサーバ用コマンド(代表的なコマンド)-------------------------------------
// メール有無チェック(STAT:メール数とサイズを取得)
resp = objNonMail.PopRecv(
    "pop.nifty.com", 110, "user", "password",
    "STAT", true, false, "");

// メール有無チェック(LIST:メール番号とサイズの一覧を取得)
resp = objNonMail.PopRecv(
    "pop.nifty.com", 110, "user", "password",
    "LIST", true, false, "");

// メール有無チェック(UIDL:メール毎のUIDLの一覧を取得)
resp = objNonMail.PopRecv(
    "pop.nifty.com", 110, "user", "password",
    "UIDL", true, false, "");
// ----------------------------------------------------------------------------------

関連するサンプルソース(コード)はこちらです。
SMTP(SSL無し)でメール送信(TcpClientソケット通信)サンプル(VB.NET)
SMTP(SSL有り)でメール送信(TcpClientソケット通信)サンプル(VB.NET)
SMTP(TLS有り)でメール送信(TcpClientソケット通信)サンプル(VB.NET)
POP3(SSL無し)でメール受信(TcpClientソケット通信)サンプル(VB.NET)
POP3(SSL有り)でメール受信(TcpClientソケット通信)サンプル(VB.NET)
IMAP(SSL無し)でメール受信(TcpClientソケット通信)サンプル(VB.NET)
IMAP(SSL有り)でメール受信(TcpClientソケット通信)サンプル(VB.NET)

SMTP(SSL無し)でメール送信(TcpClientソケット通信)サンプル(C#.NET)
SMTP(SSL有り)でメール送信(TcpClientソケット通信)サンプル(C#.NET)
SMTP(TLS有り)でメール送信(TcpClientソケット通信)サンプル(C#.NET)
POP3(SSL無し)でメール受信(TcpClientソケット通信)サンプル(C#.NET)
POP3(SSL有り)でメール受信(TcpClientソケット通信)サンプル(C#.NET)
IMAP(SSL無し)でメール受信(TcpClientソケット通信)サンプル(C#.NET)
IMAP(SSL有り)でメール受信(TcpClientソケット通信)サンプル(C#.NET)