将文件拖放到桌面图标上以将其附加到新电子邮件?

将文件拖放到桌面图标上以将其附加到新电子邮件?

你好,超级用户社区!

我已经尝试寻找解决方案,但一无所获。我想做的是:

我希望能够将一个(或任意多个)文件拖放到图标上,然后自动看到打开的发送给特定收件人的新电子邮件以及附加的文件。我不介意手动发送邮件,但我不想每次都在此之前完成所有操作。

附加信息:我想在两台商务笔记本电脑之间发送东西,因此 Dropbox 不是一个选项,因为被禁止了,而且我还希望文件出现在邮件中,而不仅仅是出现在另一台计算机上。

这可能吗?我认为可能有一些简单的批量技巧可以解决此问题。

我到目前为止尝试过的:

  • 在 Google 上搜索大量类似于“批量拖放文件到电子邮件图标”的短语,并阅读论坛条目

  • 尝试将文件拖放到“mailto:[电子邮件保护]“-> 无效果

  • 尝试找到一些可以执行此操作的批处理脚本,但我只找到了一些奇怪的扩展来从命令行编写电子邮件,这不是我想要的

答案1

简洁版本:你可以,而且令人惊讶的是,这并不太难。

但是,仅仅一个批处理文件是不够的,您需要利用特定程序的命令行开关。

对于 Outlook,使用命令行开关似乎有可能:
https://support.office.com/en-us/article/Command-line-switches-for-Outlook-for-Windows-079164CD-4EF5-4178-B235-441737DEB3A6?ui=en-US&rs=en-US&ad=US

对于 Thunderbird,可以使用 Compose Switch 来完成:
http://kb.mozillazine.org/Command_line_arguments_%28Thunderbird%29

您可以从此链接找到如何利用批处理文件的拖放支持:
http://www.computing.net/answers/programming/drag-drop-files-to-batch-/20499.html

但是,我从未真正广泛地使用过批处理文件。(我做过的最多的就是制作一个便携版的 Minecraft。)所以我不完全了解最后一个链接所使用的过程,但希望这足以让你走上正确的道路。

希望这可以帮助!

答案2

我设法对一个文件执行了此操作,最终这确实很容易。删除多个文件仍然是一个挑战,因为 Outlook 不允许通过命令行附加多个文件。我的“代码”:

"C:\Program Files (x86)\Microsoft Office\Office15\outlook.exe" /c ipm.note /m "[email protected]&subject=Files%%20sent&body=See%%20attachements" /a %1

去适应:

  • 找到 Outlook .exe 的位置,然后将其替换
  • 根据需要更改邮件地址、主题和正文(空格 = %%20)

答案3

如果您不介意使用 VBS 而不是批处理,这是我从几个地方拼凑起来的编译,以处理同一件事。

将代码保存为您选择的 .vbs 文件名并将其放在桌面上。

为其创建一个漂亮的图标,然后将多个文件复制粘贴或拖放到其中。只要您一次将它们全部拖放到其中,它们都会附加到一封 Outlook 电子邮件中,该电子邮件会立即发送给您在脚本中预先配置的姓名。如果您想在发送之前查看您的作品,请注释掉最后一行“oEmailItem.Send”。然后它等待手动发送。

由于 Outlook 接受的附件文件类型有限,我想添加压缩放入脚本的所有文件的功能,但目前还无法使此功能发挥作用。

如果您可以添加该组件,请回复。

Option Explicit
Dim objArgs, OutApp, oNameSpace, oInbox, oEmailItem, olMailItem
Dim a, oAttachments, subjectStr, olFormatHTML
olMailItem = 0
olFormatHTML = 2
Set objArgs = WScript.Arguments 'gets paths of selected files
Set OutApp = CreateObject("Outlook.Application") 'opens Outlook
Set oEmailItem = OutApp.CreateItem(olMailItem) 'opens new email
oEmailItem.To = "[email protected]"
oEmailItem.cc = "yourfriend@mailcom"
oEmailItem.bcc = "another@mailcom"
For a = 0 to objArgs.Count - 1
Set oAttachments = oEmailItem.Attachments.Add(objArgs(a))
subjectStr = subjectStr & Right(objArgs(a),Len(objArgs(a))-       (InStrRev(objArgs(a),"\"))) & ", " 'recreates the default Subject e.g. Emailing: file1.doc, file2.xls
Next
If subjectStr = "" then subjectStr = "No Subject "
oEmailItem.Subject = "Important Items " & Left(subjectStr,    (Len(subjectStr)-2))
oEmailItem.BodyFormat = olFormatHTML
oEmailItem.Display
oEmailItem.Send

相关内容