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の最新記事】
- PowerShell のバージョンを確認して、最新の PowerShell(pwsh)を実行する方法
- PowerShell で System.Data.Odbc を使用して MySQL のデータを一覧表示( csv )
- PowerShell : COM 経由(New-Object) + MySQL Connector/ODBC でループ処理をしながら更新
- PowerShell でエクスプローラでコピーしたファイルリストを取得して、テキストのクリップボードに再度コピーしなおす
- PowerShell : ファイルを開くダイアログを使うのに System.Windows.Forms を参照する二つの方法
- PowerShell2.0 : PowerShell のコードだけで TKMP.dll を使用してメールを送信する
- PowerShell で PNG 画像にフォントを指定してテキストを書き込む
- PowerShell で、SQLServer2012 の SMO を使用してテーブルの create 用のスクリプトを出力する
- PowerShell より New-Object で .NET Framework を使って簡単にバイナリファイルをアップロードする
- PowerShell より COM オブジェクトを使用して、簡単にバイナリファイルをアップロードする
- PowerShell2.0 : here-string と呼ばれるヒアドキュメント( here-string )の構文
- PowerShell2.0 : 初めての PowerShell / ファイルのダウンロード (.NET Framework の利用)
- PowerShell2.0 : ファイルを開くダイアログを使う
- PowerShell2.0 : イベントの処理とタイマーと、関数と変数のスコープ
- PowerShell(スクリプト)の引数を格納する配列変数 $args の扱い
- PowerShell2.0 : Shell.Application でディレクトリ内のファイルとディレクトリの個数( .NET の文字列フォーマット )
- PowerShell2.0 : PowerShell ISE で Excel のオブジェクトを利用して完全に終了(メモリから解放)させるには
- PowerShell2.0 : 全ての日本語ヘルプファイル(テキスト)を作成するスクリプト
- PowerShell2.0 : プロンプトの変更
- PowerShell2.0 : .NET Framework のスタティックメソッドの実行






