我使用此命令通过 Thunderbird 发送日志文件:
thunderbird -compose "subject='test',to='[email protected]',body=$output,attachment='/home/test/scan.log'"
这将启动并显示 Thunderbird 的预填充编辑消息窗口,我必须手动按“发送”按钮。
如何自动发送电子邮件?
实际上,使用
xdotool
是可以的。虽然不“正确”,但这是可能的。
您可以(根据您的目的进行修改)并将其保存到〜/ bin / send-mail
#!/bin/bash
output='testing'
thunderbird -compose "subject='test mail',to='[email protected]',body=$output" &
sleep 2 # Wait for the window to open
xdotool mousemove 55 105 # Find the exact position of the send button manually
sleep 0.25 # Might not be needed
xdotool click 1 # Click it
echo "Done!"
使其可执行:
chmod +x bin/send-mail
此外,将其添加到您的 cron 作业中。但这肯定有风险。
Thunderbird 不支持使用命令行自动发送电子邮件(即非交互方式)。这个问题在这里得到了解答 - https://support.mozilla.org/en-US/questions/1144493
建议您直接与相关的 SMTP 服务器通信,而不是使用 Thunderbird 等邮件客户端。
我将分享我的脚本的一部分,该脚本从谷歌驱动器 GNOME 虚拟文件系统下载文件,将其部分转换为 pdf 并通过 Thunderbird 发送它
您需要将 xorg 设置为您的窗口系统,xdotool 才能工作,因为如果在 ubuntu 中将 wayland 设置为您的窗口系统,它将无法工作。
# Step 8: Send email with attachment
thunderbird -compose "subject='Comprobante de pago',to='$EMAIL',body='Buenas noches, envío comprobante de pago mes relacionado en el recibo adjunto.
Gracias y feliz día.
Cristian Beltrán
3143530535',attachment='$DOWNLOAD_DIR/$PDF_NAME'" &
# Step 9: Wait for Thunderbird window and simulate send
sleep 2
xdotool mousemove 2048 214
sleep 0.25
xdotool click 1
wait
# Step 10: Cleanup
rm "$DOWNLOAD_DIR/$PDF_NAME" "$DOWNLOAD_DIR/$FILE_NAME"
1 -&----- 用于后台执行:
使用 & 运行 Thunderbird 可以让它在后台执行,这对于继续脚本而不阻塞至关重要。
2 ----等待----同步:
触发 xdotool 模拟“发送”操作后,等待可确保脚本不会过早终止,尤其是在 Thunderbird 完成处理之前。
关于 Xorg 的重要说明:
正如所强调的,xdotool 依赖于 Xorg 来与图形窗口交互。如果 Wayland 处于活动状态(较新的 Ubuntu 安装上的默认设置),xdotool 将无法工作。这意味着用户必须将其会话设置为 Xorg。