0

Send To コンテキスト メニュー項目を追加するかなり便利な VBScript を見つけました。これにより、複数のドキュメントを Outlook メール テンプレートの添付ファイルとして送信できます。現在、同様のスクリプトを使用して、ユーザー入力に基づいて電子メールを生成しており、このスクリプトを更新して、宛先フィールドまたは送信先アドレスのフィールドを含める方法を知りたいと考えていました。

最終的に、ユーザーから送信先アドレス、選択した添付ファイル、件名、本文を取得し、ユーザーに Outlook の送信ボタンをクリックさせることなく、自動的に電子メールを送信したいと考えています。しかし今のところは、Send To アドレスを取得して挿入し、選択したファイルを添付ファイルとして追加するだけで十分です。

すみません、私は VBScript の知識がほとんどなく、やりたいことが可能かどうかさえわかりません。ご提案がありましたら、お気軽に共有してください。

VBScript は次のとおりです。

Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
strSendTo = WshShell.SpecialFolders("SendTo") & "\"
strShortcutFileName = strSendTo & "\" & "Mail Recipient (as Path)" & ".lnk"
strMsg = "Completed!" & Chr(10) & Chr(10) & "SendLinkToMail.vbs - © 2010 Ramesh Srinivasan" & Chr(10) & "Visit us at http://www.winhelponline.com/blog/"
Set objArgs = WScript.Arguments
If WScript.Arguments.Count >  0 Then

    For I = 0 to objArgs.Count - 1
        If Left(WScript.Arguments.Item(I), 2) = "\\" Then
            strLinks =  strLinks & "%0A" & "%3C" & Replace(WScript.Arguments.Item(I)," ", "%20") & "%3E"
        Else
            strLinks =  strLinks & "%0A" & "%3C" & "file:///" & Replace(WScript.Arguments.Item(I)," ", "%20") & "%3E" & "%0A"
        End If      
    Next

    'Customize the Recipient Email and Subject here
    strRecipientEMail = ""
    strMailSubject = "File Paths"

    strMailSubject = Replace(strMailSubject," ","%20")
    On Error Resume Next

    WshShell.run "mailto:" & strRecipientEMail & "?Subject=" & strMailSubject & "&body=" & strLinks

    If Err <> 0 Then
        Select Case Err.Number
            Case 70
                If MsgBox ("Cannot send to mail as the parameters are too long. Do you want to output the file paths to a text file instead?",vbYesNo) = vbYes Then
                    strLinks =  Replace(strLinks,"%20"," ")
                    strLinks =  Replace(strLinks,"%0A",vbCrLf)
                    txtFilePaths= WshShell.ExpandEnvironmentStrings("%TEMP%") & "\FilePaths.txt"
                    Set b = objFSO.CreateTextFile (txtFilePaths,true)
                    b.WriteLine strLinks
                    b.close
                    WshShell.run "notepad.exe " & txtFilePaths
                End If

            Case Else
                MsgBox "Error " & Err.Number & " occurred."

        End Select
    End If
    On Error Goto 0 
Else
    rtn= Trim(UCase(InputBox ("Type INSTALL to add the MAIL RECIPIENT (as Path) to the Send To menu, or type UNINSTALL if you wish to remove the option.",  "Configuring SendLinkToMail.vbs...", "INSTALL")))
    If rtn = "INSTALL" Then RunInstall
    If rtn = "UNINSTALL" Then RunUninstall
End If

Sub RunInstall
    Set oShellLink = WshShell.CreateShortcut(strShortcutFileName)
    oShellLink.TargetPath = WScript.ScriptFullName
    oShellLink.IconLocation = "sendmail.dll,-2001"
    oShellLink.Save
    MsgBox strMsg, vbokonly,"Installed"
End Sub

Sub RunUninstall
    if objFSO.fileexists(strShortcutFileName) then objFSO.deletefile(strShortcutFileName)
    MsgBox strMsg, vbokonly,"Uninstalled"
End Sub

現在のスクリプト(バッチ)は次のとおりです。

Title GFI Fax Maker
Echo off
cls
:Start
Set Name=_
Set SurName=_
Set Company=_
Set Department=_

Set /P Name=Type the Recipient's First name: 
Set /P SurName=Type the Recipient's Last name: 
Set /P Company=Type the Recipient's Company name: 
:: Set /P Department=Type the Recipient's Department name: 
Set /P Number=Type the Recipient's Fax Number: 

cls
:Verify
Echo ________________
Echo Recipient's First Name: %Name%
Echo Recipient's Last Name: %SurName%
Echo Recipient's Company Name: %Company%
:: Echo Recipient's Department Name: %Department%
Echo Recipient's Fax Number: %Number%
Set /P Correct=Is this correct? 
If %Correct%==n GOTO Start
If %Correct%==N GOTO Start

if %Number:~0,2%==91 "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE" /c ipm.note /m %Name%.%Company%.%SurName%.%Department%.%Number%@hspsfax.com
if %Number:~0,2%==91 GOTO END

if %Number:~0,1%==1 "C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE" /c ipm.note /m %Name%.%Company%.%SurName%.%Department%.9%Number%@hspsfax.com
if %Number:~0,1%==1 GOTO End

"C:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE" /c ipm.note /m %Name: =%.%Company: =_%.%SurName: =%.%Department: =_%.91%Number: =%@hspsfax.com

:End
4

1 に答える 1

2

InputBoxユーザーが受信者のメールアドレスを入力する場所を使用できます。

strRecipientEMail = InputBox("Enter recipient address", "SendLinkToMail", "...")
于 2013-04-02T07:39:49.720 に答える