Ubuntu 没有完整路径作为文件名的 mailx 附加文件
Ubuntu mailx attach file without the whole path as the filename
我使用以下命令在 Ubuntu 服务器中发送电子邮件。这似乎附加了 testreport.csv 文件,其完整路径作为文件名。
echo "This email is a test email" | mailx -s 'Test subject' testemail@gmail.com -A "/home/dxduser/reports/testreport.csv"
我怎样才能阻止这种情况发生?是否可以附加文件的真实名称?在这种情况下,“testreport.csv”?
我在 Ubuntu 20.04
上使用 mailx (GNU Mailutils) 3.7 版本
编辑:有人可以解释一下为什么我对这个问题投了反对票吗?
周围有 multiple different mailx
implementations 个,所以具体的工作取决于您安装的版本。
但是,作为一种快速而肮脏的解决方法,您可以暂时 cd
进入该目录(前提是您具有对其的执行权限):
( cd /home/dxduser/reports
echo "This email is a test email" |
mailx -s 'Test subject' testemail@gmail.com -A testreport.csv
)
圆括号运行子shell中的命令,这样cd
的效果只会影响那个子shell,以及程序的其余部分可以像以前一样进行。
如果您的 mailx
实现在文件名中放入 Content-Disposition:
并包含文件的完整路径,我会将其视为错误。
另一种方法是使用不同的客户端。如果您无法安装,例如mutt
,创建一个简单的 shell 脚本包装器来围绕 CSV 文件的 base64
或 quoted-printable
编码构建 MIME 结构并不是特别困难,但你必须知道什么你在做什么简而言之,
( cat <<\:
Subject: test email
Content-type: text/csv
Content-disposition: attachment; filename="testreport.csv"
From: me <myself@example.org>
To: you <recipient@example.net>
Content-transfer-encoding: base64
:
base64 </home/dxduser/reports/testreport.csv
) | /usr/lib/sendmail -oi -t
显然你必须安装 base64
和 sendmail
,并且可能调整到 sendmail
的路径(或者如果它在你的 PATH
中则忽略它) .
我使用以下命令在 Ubuntu 服务器中发送电子邮件。这似乎附加了 testreport.csv 文件,其完整路径作为文件名。
echo "This email is a test email" | mailx -s 'Test subject' testemail@gmail.com -A "/home/dxduser/reports/testreport.csv"
我怎样才能阻止这种情况发生?是否可以附加文件的真实名称?在这种情况下,“testreport.csv”?
我在 Ubuntu 20.04
上使用 mailx (GNU Mailutils) 3.7 版本编辑:有人可以解释一下为什么我对这个问题投了反对票吗?
周围有 multiple different mailx
implementations 个,所以具体的工作取决于您安装的版本。
但是,作为一种快速而肮脏的解决方法,您可以暂时 cd
进入该目录(前提是您具有对其的执行权限):
( cd /home/dxduser/reports
echo "This email is a test email" |
mailx -s 'Test subject' testemail@gmail.com -A testreport.csv
)
圆括号运行子shell中的命令,这样cd
的效果只会影响那个子shell,以及程序的其余部分可以像以前一样进行。
如果您的 mailx
实现在文件名中放入 Content-Disposition:
并包含文件的完整路径,我会将其视为错误。
另一种方法是使用不同的客户端。如果您无法安装,例如mutt
,创建一个简单的 shell 脚本包装器来围绕 CSV 文件的 base64
或 quoted-printable
编码构建 MIME 结构并不是特别困难,但你必须知道什么你在做什么简而言之,
( cat <<\:
Subject: test email
Content-type: text/csv
Content-disposition: attachment; filename="testreport.csv"
From: me <myself@example.org>
To: you <recipient@example.net>
Content-transfer-encoding: base64
:
base64 </home/dxduser/reports/testreport.csv
) | /usr/lib/sendmail -oi -t
显然你必须安装 base64
和 sendmail
,并且可能调整到 sendmail
的路径(或者如果它在你的 PATH
中则忽略它) .