curl使用-n参数读取netrc凭证访问雅虎IMAP服务失败,但-u参数正常的问题求助
curl使用-n参数读取netrc凭证访问雅虎IMAP服务失败,但-u参数正常的问题求助
我最近在用curl访问雅虎IMAP服务时碰到了个棘手的问题——直接用-u参数指定账号密码能正常跑通,但换成-n读取netrc文件里的凭证就报错了,翻来覆去找不到问题根源,想请大家帮忙看看!
正常工作的命令
直接通过-u参数传入凭证的命令完全没问题,能成功获取INBOX的状态:
~$ curl -u 'foo@yahoo.com:123' imaps://imap.mail.yahoo.com:993 -X 'STATUS INBOX (MESSAGES)'
失败的命令
换成-n参数读取netrc文件的命令就不行了:
~$ curl -n imaps://imap.mail.yahoo.com:993 -X 'STATUS INBOX (MESSAGES)'
我的环境
- 系统:Ubuntu 23.04
- curl版本:8.0.1(通过snap安装)
netrc文件内容
我的netrc文件放在默认的~/.netrc路径下,内容是:
machine imap.mail.yahoo.com login foo@yahoo.com password 123
错误日志(verbose模式输出)
开启-v参数后,看到的关键错误信息如下:
Couldn't find host imap.mail.yahoo.com in the (nil) file; using defaults
[一堆中间输出内容]
curl: (21) Quote command returned error
我已经尝试过的操作
- 修改netrc文件权限为600(确保只有当前用户可读)
- 把login和password的值用引号括起来
- 检查netrc文件的格式是否有空格或换行问题
但以上操作都没能解决问题,还是报同样的错误,有没有大佬知道这是哪里出问题了呀?
备注:内容来源于stack exchange,提问作者user1799443
相关产品推荐
相关产品推荐

