見出し画像

複数にメールを送るバッチファイル

前提条件として、ファイルはデスクトップにおいて、Outlookをインストールしていることです。
ダラダラするのはいやなので。

YouTubeにアップしていますので、ぜひ。

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: メールの件数を入力
:ask_email_count
set /p email_count="送信するメールの件数を入力してください(1件~9件の間): "
if %email_count% lss 1 goto ask_email_count
if %email_count% gtr 9 goto ask_email_count

:: メールアドレス、件名、内容を入力するループ
for /L %%i in (1,1,%email_count%) do (
    set /p recipient%%i="宛先のメールアドレスを入力してください(メール %%i): "
)

set /p subject="件名を入力してください: "
set /p body="内容を入力してください: "

:: PowerShellを使用してOutlookでメールを作成し、送信
for /L %%i in (1,1,%email_count%) do (
    set recipient=!recipient%%i!
    powershell -command "$Outlook = New-Object -ComObject Outlook.Application; $Mail = $Outlook.CreateItem(0); $Mail.To = '!recipient!'; $Mail.Subject = '%subject%'; $Mail.Body = '%body%'; $Mail.Send();"
)

echo メールが送信されました。
pause
endlocal

いいなと思ったら応援しよう!