使用cURL和bash脚本中带有特殊字符的密码发送电子邮件

问题描述

我的SMTP配置如下:(所有都是伪数据)

SMTP_USERNAME="fakenews@yahoo.comg"
SMTP_SERVER="smtp.office365.com"
SMTP_PASSWORD='rdjsllskdslsds!'
SMTP_PORT="587"
EMAIL_FROM="support@fakernews.com"
EMAIL_TO="rfakeuser@fakernews.com"

注意“!”在密码末尾标记。这无法更改。

当我使用硬编码的所有内容运行以下命令时,它可以正常工作,并发送电子邮件

curl --url smtp://smtp.office365.com:587 --mail-from support@fakernews.com --mail-rcpt rfakeuser@fakernews.com --upload-file tempemailbody_1.txt --user fakenews@yahoo.comg:rdjsllskdslsds! --ssl

但是,当我用变量替换它们时,如下所示,我一直在拒绝访问。

curl --url "smtp://$SMTP_SERVER:$SMTP_PORT" --mail-from $EMAIL_FROM --mail-rcpt $EMAIL_TO --upload-file tempemailbody_1.txt  --user "$SMTP_USERNAME:$SMTP_PASSWORD" --ssl

错误消息是:

curl: (9) remote access denied: 501

我认为这是因为以某种方式导致变量解释的原因,但是我无法弄清楚是什么原因。我应该在命令中进行哪些更改以使其起作用?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)