MailItem.SenderEmailAddressセンダーイーメールアドレス プロパティ

本ページには広告が含まれています。

Outlookアイテムの送信者の電子メールアドレスを表す文字列を返します。

構文
MailItem.SenderEmailAddress
引数
戻り値
送信者の電子メールアドレス

MailItem オブジェクトを返すメソッド・プロパティ

Items.Item メソッド
Items オブジェクトからItemオブジェクトを返します。
Application.CreateItem メソッド
新しいOutlookのアイテムを表すオブジェクトを作成します。

プログラム実行例

指定期間のメール情報を取得(Outlook)

UWSC
CONST olFolderInbox = 6
CONST xlTop = -4160
CONST xlLeft = -4131

DIM Excel = ExcelBoot()

DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folder = NameSpace.GetDefaultFolder(olFolderInbox)
DIM Items = Folder.Items

DIM start = "2021/01/01"
DIM end = "2021/01/02"

Items = Items.Restrict("[ReceivedTime] >= '" + start + "' AND [ReceivedTime] < '" + end + "'")

DIM array[][1] = "受信日時", "ReceivedTime", + _
					"送信者メールアドレス", "SenderEmailAddress", + _
					"送信者", "SenderName", + _
					"CC", "CC", + _
					"BCC", "BCC", + _
					"件名", "Subject", + _
					"本文", "Body", + _
					"HTML本文", "HTMLBody"

Excel.Application.ScreenUpdating = FALSE

FOR i = 0 TO UBound(array)
	Excel.Cells(1, i + 1).Value = array[i][0]
NEXT

DIM row = 2

FOR MailItem IN Items
	FUKIDASI(row + "/" + Items.Count)
	WITH MailItem
		FOR i = 0 TO UBound(array)
			Excel.Cells(row, i + 1).Value = EVAL("." + array[i][1])
		NEXT
	ENDWITH
	row = row + 1
NEXT

WITH Excel.Range("A1").CurrentRegion
	.ColumnWidth = 20
	.RowHeight = 30
	.VerticalAlignment = xlTop
	.HorizontalAlignment = xlLeft
ENDWITH

Excel.Application.ScreenUpdating = TRUE

//////////////////////////////////////////////////
// 【引数】
//   path : 開くファイルのパス名 
// 【戻り値】
//   <a href="https://uwsc.jp/com/excel/" >Excel オブジェクト</a> 
//////////////////////////////////////////////////
FUNCTION ExcelBoot(path = "")
	DIM Excel = CREATEOLEOBJ("Excel.Application")
	Excel.Visible = TRUE
	IFB path = "" THEN
		Excel.Workbooks.Add
	ELSE
		DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
		IFB FSO.GetParentFolderName(path) = "" THEN
			path = GET_CUR_DIR + "\" + path
		ENDIF
		Excel.Workbooks.Open(path)
	ENDIF
	RESULT = Excel
FEND

//////////////////////////////////////////////////
// 【引数】
//   inputs : 繰り返す文字列 
//   multiplier : inputsを繰り返す回数 
// 【戻り値】
//   inputsをmultiplier回を繰り返した文字列を返します 
//////////////////////////////////////////////////
FUNCTION strRepeat(inputs, multiplier)
	DIM res = ""
	FOR n = 1 TO multiplier
		res = res + inputs
	NEXT
	RESULT = res
FEND

//////////////////////////////////////////////////
// 【引数】
//   arrayname : 上限値を求める配列の名前 
//   dimension : 返す次元を示す整数 
// 【戻り値】
//   配列の上限値 
//////////////////////////////////////////////////
FUNCTION UBound(arrayname[], dimension = 1)
	RESULT = EVAL("RESIZE(arrayname" + strRepeat("[0]", dimension - 1) + ")")
FEND
使用関数

過去7日間に受信した迷惑メールの受信日時とメールアドレスを取得

UWSC
DIM Outlook = CREATEOLEOBJ("Outlook.Application")
DIM NameSpace = Outlook.GetNameSpace("MAPI")
DIM Folders = NameSpace.Folders("Yahoo!_新").Folders("迷惑メール")
DIM startDate = dateAdd("d", -7, today())
DIM endDate = dateAdd("d", -1, today())
DIM Items = Folders.Items.Restrict("[ReceivedTime] >= '" + startDate + "' AND [ReceivedTime] < '" + endDate + "'")
DIM count = Items.Count

Items.Sort("受信日時")

FOR Index = 1 TO count
	WITH Items.Item(Index)
		PRINT .ReceivedTime + "<#TAB>" + .SenderEmailAddress
	ENDWITH
NEXT

//////////////////////////////////////////////////
// 【引数】
//   interval : 加算する時間間隔を表す文字列式(yyyy:年、m:月、d:日、ww:週、h:時、n:分、s:秒) 
//   num : dateに加算する値。未来は正、過去は負で指定 
//   date : 時間間隔を加算する日付 
// 【戻り値】
//   日時(date)に、指定した単位(interval)の時間(num)を加算して返します 
//////////////////////////////////////////////////
FUNCTION dateAdd(interval, num, date)
	DIM year, month, day, d
	GETTIME(0, date)
	DIM time = G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2
	SELECT interval
		CASE "yyyy"
			d = (G_TIME_YY + num) + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
			IF time <> "00:00:00" THEN d = d + " " + time
		CASE "m"
			IFB num > 0 THEN
				year = G_TIME_YY + INT((G_TIME_MM + num) / 12)
				month = REPLACE(FORMAT(((G_TIME_MM + num) MOD 12), 2), " ", "0")
			ELSE
				year = G_TIME_YY + CEIL((G_TIME_MM + num) / 12 - 1)
				month = REPLACE(FORMAT(G_TIME_MM - (ABS(num) MOD 12), 2), " ", "0")
			ENDIF
			IF month = "00" THEN month = 12
			day = G_TIME_DD2
			d = "" + year + month + day
			IFB !isDate(d) THEN
				d = year + "/" + month + "/" + "01"
				d = getEndOfMonth(d)
			ELSE
				d = year + "/" + month + "/" + day
			ENDIF
			IF time <> "00:00:00" THEN d = d + " " + time
		CASE "d"
			t = GETTIME(num, date)
			d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + IIF(t MOD 86400, " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2, "")
		CASE "ww"
			t = GETTIME(num * 7, date)
			d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + IIF(t MOD 86400, " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2, "")
		CASE "h"
			t = GETTIME(num / 24, date)
			d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + IIF(t MOD 86400, " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2, "")
		CASE "n"
			t = GETTIME(num / 1440, date)
			d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + IIF(t MOD 86400, " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2, "")
		CASE "s"
			t = GETTIME(num / 86400, date)
			d = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2 + IIF(t MOD 86400, " " + G_TIME_HH2 + ":" + G_TIME_NN2 + ":" + G_TIME_SS2, "")
	SELEND
	RESULT = d
FEND

//////////////////////////////////////////////////
// 【引数】
//   date : 日付(”YYYYMMDD” or “YYYY/MM/DD” or “YYYY-MM-DD” or “YYYYMMDDHHNNSS” or “YYYY/MM/DD HH:NN:SS”) 
//   m : 第一引数の指定日からプラスマイナスm月とする 
// 【戻り値】
//   dateからm月後の月末の日付 
//////////////////////////////////////////////////
FUNCTION getEndOfMonth(date, m = 0)
	date = dateAdd("m", m + 1, date)
	GETTIME(0, date)
	GETTIME(-G_TIME_DD, date)
	RESULT = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
FEND

//////////////////////////////////////////////////
// 【引数】
//   expr : 評価する式 
//   truepart : 評価した式がTrueのときに返す値 
//   falsepart : 評価した式がFalseのときに返す値 
// 【戻り値】
//   truepart : 評価した式がTrueのとき、falsepart : 評価した式がFalseのとき 
//////////////////////////////////////////////////
FUNCTION IIF(expr, truepart, falsepart)
	IFB EVAL(expr) THEN
		RESULT = truepart
	ELSE
		RESULT = falsepart
	ENDIF
FEND

//////////////////////////////////////////////////
// 【引数】
//   date : 存在するかを調べる日付文字列。YYYYMMDD or YYYY/MM/DD or YYYY-MM-DDのいずれかの形式。 
// 【戻り値】
//   TRUE : 日付として認識できる、FALSE : 日付として認識できない 
//////////////////////////////////////////////////
FUNCTION isDate(date)
	TRY
		GETTIME(0, date)
		RESULT = TRUE
	EXCEPT
		RESULT = FALSE
	ENDTRY
FEND

//////////////////////////////////////////////////
// 【引数】
//   
// 【戻り値】
//   今日の日付 
//////////////////////////////////////////////////
FUNCTION today()
	GETTIME()
	RESULT = G_TIME_YY4 + "/" + G_TIME_MM2 + "/" + G_TIME_DD2
FEND
使用関数
解説

関連記事

MailItem オブジェクト
メールメッセージを表します。
Items.Restrict メソッド (Outlook)
Items コレクションにフィルタを適用し、フィルタに一致する元のすべてのアイテムを含む新しいItems コレクションを返します。
MailItem.Attachments プロパティ (Outlook)
メールに添付されているすべての添付ファイルを表すOutlook.SenderEmailAddressを返します。
MailItem.BodyFormat プロパティ (Outlook)
メール本文の形式を表すOlBodyFormatクラスの定数を取得または設定します。
MailItem.CC プロパティ (Outlook)
メールのカーボンコピー(CC)名の一覧表示を表す文字列を返します。
MailItem.To プロパティ (Outlook)
Outlook アイテムの宛先の受信者の表示名一覧を表す、セミコロン(;)で区切られた文字列型(String) の一覧を設定します。
MailItem.HTMLBody プロパティ (Outlook)
メールのHTML形式の本文を表す文字列型の値を取得または設定します。
MailItem.Parent プロパティ (Outlook)
指定したオブジェクトの親オブジェクトを返します。
MailItem.ReceivedTime プロパティ (Outlook)
アイテムを受信した日付と時刻を示す日付型(Date)の値を取得します。
CDO.From プロパティ
メッセージの差出人(From)を指定します。