Khi bạn muốn Đọc file email .msg bằng powershell thì đoạn code sau sẽ hỗ trợ một cách hiệu quả. Có thể lưu vào database MS SQL Server. Các bước thực hiện như sau:
1. Tạo table chứa dữ liệu
CREATE TABLE [dbo].[tbl_ReadFileEmail](
[Content] [nvarchar](max) NULL
) ON [PRIMARY]
GO
2. Tạo Store procedure để thêm dữ liệu
CREATE proc [dbo].[SP_InsertItem]
(
@Content nvarchar(300)
)
AS
Insert into [tbl_ReadFileEmail] values(@Content)
3. Lệnh Powershell để đọc và Insert dữ liệu vào MS SQL Server
function Insertitem($name)
{
$conn = New-Object system.Data.SqlClient.SqlConnection
$conn.connectionstring = "server=.\SQLEXPRESS;database=mail;uid=111;pwd=111;"
$conn.Open()
#define insert query
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $conn
$Command.CommandType = [System.Data.CommandType]::StoredProcedure
$Command.CommandText = "SP_InsertItem"
$Command.Parameters.AddWithValue(''@name'', $name)
$Command.ExecuteNonQuery()# | out-null
$conn.Close()
cls
}
Get-ChildItem "E:mail" -Filter *.msg|`
ForEach-Object{
$outlook = New-Object -comobject outlook.application
$msg = $outlook.CreateItemFromTemplate($_.FullName)
$data = $msg | Select subject|ft -AutoSize
Insertitem -name $msg.Subject
}