SQLの窓

2014年10月17日


PowerShell2.0 : PowerShell 内で VBのコードを記述(TKMP.dllを使用)して、exe を作成した後実行してメールを送信する

PowerShell2.0 内で VB や C# のコードをヒアドキュメントで記述してビルドして exe を簡単に作成できます

.NET用メール送受信クラスライブラリ (TKMP.DLL)

ライブラリ単体 (TKMPDLL_3.1.4.zip) をダウンロードして適当な場所で解凍してそのまま使います。実行ファイルは、解凍した TKMPDLL_3.1.4 フォルダに作成して、実行後削除します。

参考資料

 PowerShell2.0 : VB.net と C# のコードをビルドして exe を作成する

ここでは、vb を使用していますが、c# でも同じです。

vbc.exe でビルドするのとさほど変わりはありませんが、vbc.exe のパスを気にしないでいいところが簡単になります。
$source = @"
Imports TKMP.Writer
Imports TKMP.Net
Public Class Module1

	Public Shared Sub Main()

		'------------------------------------------------------
		'サーバー情報
		'------------------------------------------------------
		Dim Server As String = "ユーザID.sakura.ne.jp"
		Dim ServerPort As Integer = 587

		'------------------------------------------------------
		'メール情報の作成
		'------------------------------------------------------
		Dim mail As MailWriter = New MailWriter

		'差出人
		mail.FromAddress = "メールユーザ@ユーザID.sakura.ne.jp"
		'あて先
		mail.ToAddressList.Add("あて先メールアドレス")
		'本文のクラスを作成します
		Dim part As TextPart = New TextPart("本文")
		'送信メールクラスに本文を登録
		mail.MainPart = part

		'相手のメーラーで「差出人」として表示
		mail.Headers.Add("From", "わたし <メールユーザ@ユーザID.sakura.ne.jp>")
		'相手のメーラーで「あて先」として表示されます
		mail.Headers.Add("To", "あなた <あて先メールアドレス>")
		'メールの件名
		mail.Headers.Add("Subject", "タイトル")
		'付加情報など
		mail.Headers.Add("X-Mailer", "TKMP Version 3.1.4")

		'------------------------------------------------------
		'サーバーへ接続
		'------------------------------------------------------
		'SMTPサーバーを利用する場合に認証が必要なときは以下のようにインスタンスを作成します
		Dim logon As AuthLogin = New AuthLogin("認証用ユーザ文字列", "パスワード")
		Dim smtp As SmtpClient = New SmtpClient(Server, ServerPort, logon)

		'接続
		If Not smtp.Connect() Then
			System.Console.WriteLine("接続に失敗しました。")
			Return
		End If

		'------------------------------------------------------
		'メール送信を開始します
		'------------------------------------------------------
		smtp.SendMail(mail)

		'------------------------------------------------------
		'サーバーから切断します
		'------------------------------------------------------
		smtp.Close()

		System.Console.WriteLine("メールを送信しました")


	End Sub

End Class
"@
Add-Type `
   -TypeDefinition $source `
   -Language VisualBasic `
   -ReferencedAssemblies C:\user\TKMPDLL_3.1.4\TKMP.dll `
   -OutputAssembly C:\user\TKMPDLL_3.1.4\_mail_action.exe `
   -OutputType ConsoleApplication

C:\user\TKMPDLL_3.1.4\_mail_action.exe
Remove-Item C:\user\TKMPDLL_3.1.4\_mail_action.*

履歴
2010-04-06 : 初回投稿

関連する記事

PowerShell2.0 : PowerShell のコードだけで TKMP.dll を使用してメールを送信する


タグ:PowerShell
【PowerShellの最新記事】
posted by lightbox at 2014-10-17 13:39 | PowerShell | このブログの読者になる | 更新情報をチェックする
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり