我想通过ssh远程启动脚本,如下所示:
ssh user@remote.org -t 'cd my/dir && ./myscript data my@email.com'
Run Code Online (Sandbox Code Playgroud)
该脚本执行各种工作正常,直到与nohup行:
nohup time ./myprog $1 >my.log && mutt -a ${1%.*}/`basename $1` -a ${1%.*}/`basename ${1%.*}`.plt $2 < my.log 2>&1 &
Run Code Online (Sandbox Code Playgroud)
它应该启动程序myprog,将其输出传递给mylog并发送一封电子邮件,其中包含myprog创建的一些数据文件作为附件,日志作为正文.虽然当脚本到达此行时,ssh输出:
与remote.org的连接已关闭.
这里有什么问题?
谢谢你的帮助
谷歌在这里并不是很有帮助.我想用:set spellon 撰写电子邮件,但对于所有其他文件,:set spell应该关闭.我正在使用mutt,而Vim则是编写电子邮件的编辑器.
事实上,我很好奇,Vim怎么知道这是我正在撰写的电子邮件?是否有正在编辑的文件类型的命令行参数?mutt怎么知道传递什么?
我是一个笨蛋新手,但我正在稳步学习,受到搜索速度和信息显示的极大鼓舞.我使用mutt从两个Gmail IMAP帐户读取电子邮件,并将我的磁盘上的标头缓存在〜/ .mutt/cache/hcache和〜/ .mutt/cache/bodies /中的邮件正文中.
我有几年通过Apple Mail.app下载的邮件存储在〜/ Library/Mail/Mailboxes/.mbox/Messages /,其中是2000 .. 2010.所有这些邮件都有.emlx扩展名.如何将这些消息传输到我的mutt商店,以便我可以通过mutt阅读和搜索它们?
我正在尝试编写一个设置变量的小mutt宏,然后在同一个宏中重用该变量.
我真正想要做的是在To:地址中构建一个消息和sub(稍后我将动态填充).
这是我的.muttrc
set my_to = "bobby@test.com"
macro index E "<enter-command> set my_to = barry@test.com<enter>mn\$my_to"
Run Code Online (Sandbox Code Playgroud)
我的问题是变量my_to永远不会从bobby @ ...变为barry @ ...
我相信它与配置解析期间解释的$有关,手册建议使用转义.但是,如果我这样做,只显示文字"$ my_to".
我究竟做错了什么?
更新: 我仍然无法像上面那样设置/获取变量,但是我错过了一个明显的Mutt解决方案来解决我的问题ESC -e将根据现有的情况创建一个新的电子邮件.类似于Thunderbird中的edit-as-new.
有时我会收到其mimetypes不在我的mailcap文件中的电子邮件附件.要从mutt打开这样的附件,我通常从列表中选择附件,点击s保存文件/tmp,然后使用!shell命令使用任何适合的应用程序打开保存的文件.
是否可以使用mutt宏自动执行此操作,这只是将选定的附件保存到/tmp应用程序名称的查询中,然后使用此应用程序打开保存的文件?
我可以使用Mutt及其自己的ui来发送电子邮件并保存副本。
mutt -s topic receiver
Run Code Online (Sandbox Code Playgroud)
这将打开mutt的界面来编辑和发送邮件。它将首先上传到imap服务器,然后通过smtp服务器发送电子邮件。标头中有一个Fcc字段。
但是,当我使用纯命令行发送邮件时,请说:
mutt -s topic receiver < foo
Run Code Online (Sandbox Code Playgroud)
邮件已成功发送,但服务器的已发送文件夹中没有副本。我检查了调试日志,邮件根本没有上传到imap服务器,只是通过smtp服务器发送。
我尝试使用my_hdr,但不支持设置Fcc。
也尝试了fcc-hook,不能使用
Mutt 的配置变量中有一个选项beep_new,它会导致 Mutt 在新电子邮件到达时发出蜂鸣声。还有<shell_esc>command,它在内部shell中执行命令。有没有办法让 Mutt 在新电子邮件到达时执行某些用户定义的操作(shell 命令)?也许<pipe-message>可以帮忙?(可以<pipe-message>在配置文件中使用来调用 shell 命令。在运行 Mutt 时有没有办法做到这一点?)
编辑:根据 Glenn 的建议,可以通过在 .muttrc 文件中配置自定义状态格式来调用 Mutt 的脚本:
set status_format="/some/script.sh '%r %f (%L) |"
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用它来检测新电子邮件,因为“新邮件在...”通知出现在命令行上,而不是状态行中。如果电子邮件到达的邮箱不是当前邮箱,则状态行根本不会改变。
编辑2:好的,status_format 中的 %b 变量完成了这个任务。
我想知道是否有基于从“编辑”或“页面”模式中提取的文本的 mutt 索引中的“搜索”或“限制”。
我正在尝试为索引构建一个宏,按下该宏时会将索引限制为仅来自 ( ~f)From: .*$当前项目的正则表达式的邮件。
这将帮助我做的是查看来自特定发件人的所有消息的上下文......当人们不小心“中断线程”时,它也会有所帮助。
我希望它与此处讨论的 vim 类似,我可以从一个区域中提取文本,然后键入^R"以粘贴回“搜索”或“限制”提示符中。
我尝试制作一个宏来进入edit然后搜索 from 字符串,但我不知道如何将其粘贴回索引中的任何内容......
我必须发送一封带有shell脚本附件的邮件.我正在尝试使用mutt来执行此操作,如下所示:如何使用Linux命令行将文件作为电子邮件附件发送?
命令:
echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
错误:
发送消息时出错,子项退出127(执行错误.).
无法发送消息.
当运行 git-am 来应用我从邮件列表中保存到 mbox 文件中的补丁系列时,如果 mbox 还包含求职信(也称为 PATCH [0/N]),它会抱怨如下:
\n\n128 git \xe2\x80\xa6 am --3way ~/patches/sample.mbox\nPatch is empty.\nWhen you have resolved this problem, run "git am --continue".\nIf you prefer to skip this patch, run "git am --skip" instead.\nTo restore the original branch and stop patching, run "git am --abort".\nRun Code Online (Sandbox Code Playgroud)\n\n确实,求职信是一个空补丁,因为其中不包含补丁分隔符,但我认为git am足够聪明,可以注意到它并完全跳过它。这并不是什么大麻烦,因为我可以毫无问题地跳过从 mutt 将这个补丁添加到 mbox 中,但有时补丁系列到达邮件列表时有些混乱,而且我不能只是将整个线程复制到同一个 mbox 中。 \n或者我可以手动跳过补丁,它将顺利应用。
当它确实是一封求职信时,有什么方法可以指示 git am 跳过补丁号 0 吗?
\n