我遇到了这个问题:
我正在尝试从命令行发送电子邮件,但如果我这样做:
mailto:example@rat.it?subject = subject& body = body
cmd让我回答:“身体”非èriconosciuto来自comando interno o esterno, un programma eseguibile o un file batch。
我只设法写一个主题和没有正文的电子邮件,我该如何添加正文?
请帮帮我
答案 0 :(得分:4)
差不多......
这有效:
start mailto:"example@rat.it?subject=subject&body=body"
编辑:但是它会在地址的开头添加额外的"
...
(你可以通过在它前面插入一个空格来避免身体末端的额外"
)
EDIT2: 但这很有效:
start "" "mailto:example@rat.it?subject=subject&body=body "
答案 1 :(得分:0)
Interlink邮件客户端执行此操作。 https://binaryoutcast.com/projects/interlink
摘自http://kb.mozillazine.org/Command_line_arguments_%28Thunderbird%29的文档并在Windows上进行测试:
d:\Path\Interlink.EXE -compose ^
"from='From Name ^<FromBox@FromDomain.com^>'^
,to='To Name One ^<ToBoxOne@ToDomainOne.com^>, To Name Two ^<ToBoxTwo@ToDomainTwo.com^>'^
,cc='CC Name One ^<CCBoxOne@CCDomainOne.com^>, CC Name Two ^<CCBoxTwo@CCDomainTwo.com^>'^
,bcc='BC Name One ^<BCBoxOne@BCDomainOne.com^>, BC Name Two ^<BCBoxTwo@BCDomainTwo.com^>'^
,subject='Your Subject Here'^
,message='d:\Path\Body File.htm',^
,attachment='^
d:\Path\Attach One.PDF,^
d:\Path\Attach Two.PDF^
'"
行继续用于可读性和bat / cmd文件,但也可以正常工作。 不需要在Set语句的单引号内将尖括号转义。
错误:标识中必须存在发件人地址,否则生成的撰写窗口将为空。该错误已于2020年7月左右提交到队列中。 在身份中找到发件人地址后,将从身份中复制发件人名称,并忽略命令行上的发件人名称。
语法:
-compose的整个参数列表都用双引号引起来。 在参数列表中,参数用逗号分隔;逗号不能以空格开头或跟随。 当参数列表仅包含一个参数,并且该参数包含零个空格或尖括号时,将其括在双引号中是可选的。
在参数中,值列表用单引号引起来。 在值列表中,值用逗号分隔;逗号后面可以跟空格。 如果一个值列表仅包含一个值,并且该值包含零个空格或尖括号,则将其用单引号引起来是可选的。
某些参数将接受值列表中的所有值:to =,cc =,bcc =,attachment =
某些参数将仅接受值列表中的第一个值:from =,subject =,body =,message =;以下值将被忽略。
如果同时指定message =和body =,则body =将被忽略。
雷鸟可能兼容。
使用以下命令从注册表中将可执行文件路径名获取到环境变量中:
For /F "Tokens=3" %%A In ('Reg Query HKEY_CLASSES_ROOT\mailto\shell\open\command') Do Set MailerEXE=%%A