自動化のために人間の介入なしでコマンドライン経由でメールを送信する必要があります。
Mailtoコマンドを使用できることは知っていますが、それは電子メール、件名、本文などすべてを構成しますが、送信をクリックしない限り送信しません。
オンラインで読むと、blatを使用できますが、Outlook以外は使用できません。
これは私が見つけたクローズドポストです SOFポストへのリンク 。
ただあなたの情報のために:私はいくつかのtelnetコマンドを調べていますが、電子メールを送信することもまだ成功していません。 電子メールを送信するTelnetコマンド
オプション1
環境についてはあまり説明しませんでしたが、環境が整っていればPowerShellスクリプトを使用できます。 1つの例は here です。これの本質は次のとおりです。
$smtp = New-Object Net.Mail.SmtpClient("ho-ex2010-caht1.exchangeserverpro.net")
$smtp.Send("[email protected]","[email protected]","Test Email","This is a test")
その後、 この例 に従ってコマンドラインからスクリプトを起動できます。
powershell.exe -noexit c:\scripts\test.ps1
Windows 7およびWindows Server 2008R2にデフォルトでインストールされるPowerShell 2.0には、より簡単な Send-MailMessage
コマンドが含まれているため、作業が簡単になります。
オプション2
サードパーティ製のソフトウェアを使用する準備ができている場合は、何か このSendEmailコマンドラインツール です。ただし、ターゲット環境によって異なります。バッチファイルを複数のマシンに展開している場合、毎回含める必要があります(ただし、正式なインストールは必要ありません)。
オプション3
VBAスクリプトからOutlookを直接駆動できます。VBAスクリプトは、バッチファイルからトリガーします。これにより、Outlook自体を使用してメールを送信できるようになります。これには2つの部分があります。最初に、電子メールを送信するために必要なVBAスクリプトを理解します。このオンラインには、Microsoft here を含む多くの例があります。これの本質は次のとおりです。
Sub SendMessage(DisplayMsg As Boolean, Optional AttachmentPath)
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.Recipient
Dim objOutlookAttach As Outlook.Attachment
Set objOutlook = CreateObject("Outlook.Application")
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
objOutlookRecip.Type = olTo
' Set the Subject, Body, and Importance of the message.
.Subject = "This is an Automation test with Microsoft Outlook"
.Body = "This is the body of the message." &vbCrLf & vbCrLf
.Importance = olImportanceHigh 'High importance
If Not IsMissing(AttachmentPath) Then
Set objOutlookAttach = .Attachments.Add(AttachmentPath)
End If
For Each ObjOutlookRecip In .Recipients
objOutlookRecip.Resolve
Next
.Save
.Send
End With
Set objOutlook = Nothing
End Sub
次に、 この回答 (必要に応じてパス/マクロ名を変更)に従って、/autorun
パラメーターを指定してコマンドラインからOutlookを起動します。
C:\Program Files\Microsoft Office\Office11\Outlook.exe" /autorun macroname
オプション4
オプション3と同じアプローチを使用できますが、Outlook VBAをPowerShellコマンド(コマンドラインから実行します)に移動します。例 ここ 。これはおそらく最も手ごろなソリューション、IMOです。
VBAが VB Script のルールを満たしている場合、コマンドラインからテキストファイルに配置するだけで呼び出すことができます。この場合、Outlookを特に開く必要はありません。
コマンドラインから自動テキストメッセージを自分に送信する必要があったため、次のコードを使用しました。これは、@ Geoffの answer の圧縮バージョンです。
世界中のほとんどの携帯電話会社は、携帯電話番号の「バージョン」のメールアドレスを提供しています。 たとえばカナダでRogersまたはChatr Wirelessを使用すると、<YourPhoneNumber>
@pcs.rogers.com
に送信されたメールはすぐにRogers /に配信されますテキストメッセージとしてのChatr電話。
* 電話で最初のメッセージを「承認」する必要があります。また、一部のキャリアはこれらのメッセージに追加料金を請求する場合がありますが、私の知る限り、すべてのカナダのキャリアがこのあまり知られていないサービスを無料で提供しています。詳細については、キャリアのWebサイトを確認してください。
this および this および this などの詳細な指示とさまざまな世界中のキャリアのEmail-to-Textアドレスのコンパイルされたリストがオンラインで利用可能です。
.VBS
など、TextMyself.vbs
拡張子を持つ任意の名前でファイルを保存します。それで全部です!
ファイルをダブルクリックしてテストメッセージを送信するか、 START
を使用してバッチファイルから実行します。
Sub SendMessage()
Const EmailToSMSAddy = "[email protected]"
Dim objOutlookRecip
With CreateObject("Outlook.Application").CreateItem(0)
Set objOutlookRecip = .Recipients.Add(EmailToSMSAddy)
objOutlookRecip.Type = 1
.Subject = "The computer needs your attention!"
.Body = "Go see why Windows Command Line is texting you!"
.Save
.Send
End With
End Sub
START x:\mypath\TextMyself.vbs
もちろん、これをさまざまな実用的または創造的なニーズに合わせて調整およびカスタマイズできる方法は無限にあります。