mutt:“无法锁定/home/{{user}}/Mail/sent”

mutt:“无法锁定/home/{{user}}/Mail/sent”

我正在尝试让 mutt 在 ubuntu 上运行,但是我一直收到错误:

"Couldn't lock /home/{{user}}/Mail/sent"

当我尝试发送邮件时。我的权限~/Maildrwxrwx---。我非常感激任何关于如何解决这个问题的建议。

我在 Windows 上使用 bash。下面您可以看到我的文件的摘录.muttrc。出于安全考虑,我省略了一些内容。

set folder = "imaps://exchange.ku.dk:993/"
set spoolfile = "+INBOX"
set postponed="+[ku]/Drafts"

set record="~/Mail/sent.lock"
set header_cache=~/.mutt/cache/headers
set message_cachedir=~/.mutt/cache/bodies
set certificate_file=~/.mutt/certificates

set move = no
set editor = 'vim'
set timeout = 10

答案1

我怀疑是其他服务阻止了文件锁定。实际上,您似乎正在转发邮件(按照文件folder中的指示.muttrc)。

它可能将Postfix在下面用于邮件中继,而我猜想罪魁祸首就在这里。Ubuntu 系统附带一个系统,用于限制服务仅执行允许执行的操作,当您安装Postfix它时,它将自动为其创建基本配置(当然,其中不包括您可能用 执行的任何操作mutt)。

为了快速测试它,您可以apparmor通过调用以下命令来停止该工具:

  • 如果你使用的是 Ubuntu 14.04 或更早版本:

    /etc/init.d/apparmor teardown
    
  • 如果您使用的是 Ubuntu 16.04 或更高版本:

    systemctl stop apparmor
    

然后,再次尝试使用mutt。如果有效,我的假设是正确的。在这种情况下,您需要:

  • 不要在 apparmor 中定义Postfix配置文件。为此,只需转到/etc/apparmor.d,找到该树下的 postfix 文件并将其删除,重新启动apparmor,就大功告成了。
  • 定义Postfix配置并使用其他配置进行扩展mutt。为此,我建议开始学习这里

答案2

首先,检查没有其他 mutt 进程锁定该文件:

$ pgrep -a mutt

您还可以检查是否有另一个进程锁定了邮箱,以防万一:

$ lsof /home/$USER/Mail/sent.lock

否则,尝试删除锁文件:

$ rm /home/$USER/Mail/sent.lock

答案3

我在 FreeBSD 上遇到了这个问题,结果是我将 sysctl security.bsd.hardlink_check_uid 和 security.bsd.hardlink_check_gid 设置为 1。将两者都设置为零可以解决该问题。

相关内容