gpt4 book ai didi

bash - 如何以正确的格式发送邮件

转载 作者:行者123 更新时间:2023-12-04 19:02:04 26 4
gpt4 key购买 nike

我有一个简单的脚本,它可以进行系统更新并发送有关状态的邮件,如下所示:

echo '===============================\n' > mylog.log
sudo apt-get update -y >> mylog.log
if [ $? -eq 0 ]; then
echo 'completed successfully\n' >> mylog.log
else
echo 'FAILED\n' >> mylog.log
fi
echo '===============================' >> mylog.log
sudo apt-get dist-upgrade -y >> mylog.log
if [ $? -eq 0 ]; then
echo 'completed successfully\n' >> mylog.log
else
echo 'FAILED\n' >> mylog.log
fi
echo 'sending mail\n' >> mylog.log
mailx -aFrom:test@mymail.com -a 'Content-Type: text/html' -s "Updates @`date`" chaitanya@mymail.com < mylog.log

该程序运行良好,我正在收到邮件。但是邮件没有任何新行。以下是邮件内容:
=============================== Hit http://security.ubuntu.com precise-security/multiverse Translation-en Hit http://security.ubuntu.com precise-security/restricted Translation-en Hit http://security.ubuntu.com precise-security/universe Translation-en Reading package lists... completed successfully =============================== Reading package lists... Building dependency tree... Reading state information... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. completed successfully sending mail

邮件以单行显示,格式不可读。如果我打开日志文件 mylog.log,它的格式正确,带有新行。
=============================== 
Hit http://security.ubuntu.com precise-security/multiverse Translation-en
Hit http://security.ubuntu.com precise-security/restricted Translation-en
Hit http://security.ubuntu.com precise-security/universe Translation-en
Reading package lists...
completed successfully
===============================
Reading package lists...
Building dependency tree...
Reading state information... 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
completed successfully
sending mail

如何以适当的可读格式发送邮件?

更新:
在代码中使用了 printf,但同样的问题。
printf '%b' '===============================\r\n' > mylog.log
sudo apt-get update -y >> mylog.log
if [ $? -eq 0 ]; then
printf '%b' 'completed successfully\r\n' >> mylog.log
else
printf '%b' 'FAILED\n' >> mylog.log
fi
printf '%b' '===============================' >> mylog.log
sudo apt-get dist-upgrade -y >> mylog.log
if [ $? -eq 0 ]; then
printf '%b' 'completed successfully\r\n' >> mylog.log
else
printf '%b' 'FAILED\n' >> mylog.log
fi
printf '%b' 'sending mail\n' >> mylog.log
mailx -aFrom:test@mymail.com -a 'Content-Type: text/html' -s "Updates @`date`" chaitanya@mymail.com < mylog.log

最佳答案

您将内容声明为 HTML,但显然您发送的是一个简单的文本文件。添加 HTML 格式以使其按预期显示,或将其发送为 text/plain反而。 (就个人而言,我强烈建议后者。)

关于bash - 如何以正确的格式发送邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37458692/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com