Rob*_*723 17 email command-line bash
这是我所拥有的:
cat UserReport.txt | mail -s "TestSubject" "nospam@gmail.com"
Run Code Online (Sandbox Code Playgroud)
这是一个小文件,比图片小得多,所以它应该几乎立即发送。虽然我什么也没收到。我安装了,mailutils但可能安装不正确。
如何从 bash 脚本发送电子邮件?
αғs*_*нιη 31
首先,您需要安装和配置 Postfix 以在 Ubuntu 上使用 Gmail SMTP。
安装所有必要的软件包:
$ sudo apt-get install postfix mailutils libsasl2-2 ca-certificates libsasl2-modules
Run Code Online (Sandbox Code Playgroud)
如果你之前没有安装过 postfix,postfix 配置向导会问你一些问题。只需选择您的服务器作为Internet 站点,对于 FQDN 使用类似mail.example.com 的内容
然后打开你的后缀配置文件:
$ sudo -H gedit /etc/postfix/main.cf
Run Code Online (Sandbox Code Playgroud)
并向其添加以下行:
relayhost = [smtp.gmail.com]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
Run Code Online (Sandbox Code Playgroud)
您可能已经注意到我们没有在上面的行中指定我们的 Gmail 用户名和密码。他们将进入不同的文件。打开/创建:
$ sudo -H gedit /etc/postfix/sasl_passwd
Run Code Online (Sandbox Code Playgroud)
并添加以下行:
[smtp.gmail.com]:587 USERMAIL@gmail.com:PASSWORD
Run Code Online (Sandbox Code Playgroud)
如果您想使用 Google App 的域,请将@gmail.com替换为您的@domain.com。
修复权限并更新后缀配置以使用 sasl_passwd 文件:
$ sudo chmod 400 /etc/postfix/sasl_passwd
$ sudo postmap /etc/postfix/sasl_passwd
Run Code Online (Sandbox Code Playgroud)
接下来,验证证书以避免出错。只需运行以下命令:
$ cat /etc/ssl/certs/Thawte_Premium_Server_CA.pem | sudo tee -a /etc/postfix/cacert.pem
Run Code Online (Sandbox Code Playgroud)
最后,重新加载 postfix 配置以使更改生效:
$ sudo /etc/init.d/postfix reload
Run Code Online (Sandbox Code Playgroud)
如果您已正确配置所有内容,以下命令应该会从您的服务器生成一封测试邮件到您的邮箱。
echo "Test mail from postfix" | mail -s "Test Postfix" you@example.com
Run Code Online (Sandbox Code Playgroud)
为了进一步验证,如果从上述命令发送的邮件实际上是通过 Gmail 的 SMTP 服务器发送的,您可以使用 PASSWORD 登录 Gmail 帐户 USERNAME@gmail.com 并检查“已发送邮件该 Gmail 帐户中的”文件夹。默认情况下,Gmail 始终保留通过其网络界面和 SMTP 服务器发送的邮件副本。这种日志记录是我们经常在邮件传递至关重要时使用 Gmail 的一个重要原因。
您需要通过访问此页面来解锁验证码 https://www.google.com/accounts/DisplayUnlockCaptcha
您可以在解锁验证码后再次运行测试。
来源
mail和mutt发送电子邮件的以下语法,请注意,如果您想通过mail命令发送附件文件,则不支持,或者最好我说我不能通过mail命令发送我的附件,而是可以使用mutt命令行,这是非常有用。并且在mutt命令中,您必须在电子邮件地址后键入附件参数。我测试它并且工作正常。
您可以mutt通过以下命令安装:
$ sudo apt-get install mutt
Run Code Online (Sandbox Code Playgroud)
使用 mail
mail -s "TestSubject" nospam@gmail.com -a "UserReport.txt" < MessageBody.txt
Run Code Online (Sandbox Code Playgroud)
使用 mutt
mutt -s "TestSubject" nospam@gmail.com -a "UserReport.txt" < MessageBody.txt
Run Code Online (Sandbox Code Playgroud)
虽然UserReport.txt是你的附件文件,MessageBody是你的电子邮件的身体的文本/文件,TestSubject是你的电子邮件的主题。
-s标志用于“主题”,-a标志用于“附件文件”
| 归档时间: |
|
| 查看次数: |
115137 次 |
| 最近记录: |