Linux ubuntu发送邮件
一、安装
apt install sendemail
二、获取邮件授权码
我这里是用的QQ,在QQ邮箱中,点击设置,开启SMTP服务,拿到授权码:

三、编辑脚本
vim sendemail.sh
#!/bin/bash
account='【你的QQ】@qq.com'
password='【授权码】'
to=$1
subject=$2
content=$3
sendemail -f $account -t $to -s smtp.qq.com:465 -u $subject -xu $account -xp $password -m $content
说明:
-f 表示发送者的邮箱 -t 表示接收者的邮箱 -cc 表示抄送发给谁 -bcc 表示暗抄送给谁 -o message-content-type=html 邮件内容的格式,html表示它是html格式 -o message-charset=utf8 邮件内容编码 -s 表示SMTP服务器的域名或者ip -u 表示邮件的主题 -xu 表示SMTP验证的用户名 -xp 表示SMTP验证的密码(注意,这个密码貌似有限制,例如我用d!5neyland就不能被正确识别) -m 邮件的内容 -a 要发送的附件
四、执行命令
./sendemail.sh 【你的QQ】@qq.com 邮件主题 邮件内容
五、查看结果
出现如下打印,可以查看邮件是否收到消息
![]()
那怎么添加附件呢,对于这个指令来说 -a就是增加附件,首先我们在sh文件上增加-a,先用file=$4,就是指的命令行的第四串数据,填入附件的地址/root/data/hzy/hzylog.txt。


在命令行上运行这个脚本,后面附带四串信息,分别是接收方邮件地址、邮件主题、邮件内容、附件的地址。可以看到发送成功,如上图。
六、注意事项
1.如果出现如下打印:bash: ./sendemail.sh: Permission denied,表明脚本没有权限运行,需要为此脚本增加权限:
chmod 777 sendemail.sh
2.邮件主题和邮件内容,如果发现发送不完全,可以单独加上“”,比如“邮件主题” “邮件内容”,这样即使内容有空格也能全部发送出去。
3.要想发送,ubuntu要能联网,这是前提条件。
4.如果运行脚本后,发现命令行为空,感觉要我们输入信息的样子,这个时候很大概率是端口没开放,程序一直在等待,直到超时都无法发送,此时我们需要确认下端口是否打开,还不行的话换一个端口再试试。
第二种指令
1.安装:apt-get install heirloom-mailx
2.vim /etc/s-nail.rc 编辑

上面smtp没加上465端口的话,默认就是25端口

3.发送指令:echo 'test2' | heirloom-mailx -s 'test2' 【你的QQ】@qq.com
---------
其他参考
下载安装sendEmail
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
mkdir /usr/local/bin
tar zxf sendEmail-v1.56.tar.gz -C /usr/src
cd /usr/src/sendEmail-v1.56
cp -a sendEmail /usr/local/bin
chmod +x /usr/local/bin/sendEmail
下载解压即可使用
测试发送sudo /usr/local/bin/sendEmail -f tuna_dai@163.com -t 931309012@qq.com -s smtp.163.com -u "我是邮件主题" -o message-content-type=html -o message-charset=utf8 -xu tuna_dai@163.com -xp 密码 -m "邮件内容"
/usr/local/bin/sendEmail 命令主程序
-f from@163.com 发件人邮箱
-t to@163.com 收件人邮箱
-s smtp.163.com 发件人邮箱的smtp服务器
-u "邮件主题" 邮件的标题
-o message-content-type=html 邮件内容的格式,html表示它是html格式
-o message-charset=utf8 邮件内容编码
-xu from@163.com 发件人邮箱的用户名
-xp 123456 发件人授权密码
-m "我是邮件内容" 邮件的具体内容
如果网易不行换成,新浪的邮件服务器,同样开启>POP3/SMTP/IMAP功能,密码就用邮箱密码即可
1.2sendmail命令(不是很好用麻烦)
1.安装服务
sudo apt-get install mailutils
sudo apt-get install sharutils
sudo apt-get install sendmail
sudo apt-get install apache2
sudo apt-get install php5
sudo apt-get install sendmail-cf
2.安装后,查看sendmail服务是否开启ps aux |grep sendmail
3. 修改配置sudo vi /etc/php5/apache2/php.ini
- 修改
sendmail_path = /usr/sbin/sendmail -i -t
4. 在/etc/hosts 文件中将
127.0.0.1 localhost
# 改为
127.0.0.1 localhost.localdomain localhost 主机名
(1)/etc/mail/sendmail.mc
(a)配置sendmail可以连接任何服务器
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1')dnl 修改Addr=0.0.0.0
(b)添加auth配置(注意字符串前面不是单引号,而是键盘中的波浪号键上的符号)
TRUST_AUTH_MECH(`EXTERNAL
DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
(c)启用access_db和trust_users
添加FEATURE(use_ct_file)
修改FEATURE(access_db', ,skip')dnl为FEATURE(`access_db')dnl
(2)/etc/mail/access
5.发送邮件
-
快速发送方式:
echo "mail content" | mail -s subject test@163.com -
以文件内容作为邮件正文来发送:
mail -s test test@163.com < test.txt
--------------------
如何在 Linux 上安装 sendmail 命令
sendmail 是一个上广泛使用的通用 SMTP 服务器,你也可以从命令行用 sendmail 发邮件。可以运行下面的命令从官方发行版仓库安装 sendmail 命令。
对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或 APT 命令安装 sendmail。
$ sudo apt-get install sendmail
对于 RHEL/CentOS 系统,使用 YUM 命令 安装 sendmail。
$ sudo yum install sendmail
对于 Fedora 系统,使用 DNF 命令 安装 sendmail。
$ sudo dnf install sendmail
4a) 如何在 Linux 上使用 sendmail 命令发送邮件
sendmail 同样简单易用。使用下面的 sendmail 命令发送邮件。
$ echo -e "Subject: Test Mail\nThis is the mail body" > /tmp/send-mail.txt
$ sendmail 2daygeek@gmail.com < send-mail.txt
5) 如何在 Linux 上安装 ssmtp 命令
ssmtp 是类似 sendmail 的一个只发送不接收的工具,可以把邮件从本地计算机传递到配置好的 邮件主机(mailhub)。用户可以在 Linux 命令行用 ssmtp 把邮件发送到 SMTP 服务器。可以运行下面的命令从官方发行版仓库安装 ssmtp 命令。
对于 Debian/Ubuntu 系统,使用 APT-GET 命令 或 APT 命令安装 ssmtp。
$ sudo apt-get install ssmtp
对于 RHEL/CentOS 系统,使用 YUM 命令 安装 ssmtp。
$ sudo yum install ssmtp
对于 Fedora 系统,使用 DNF 命令 安装 ssmtp。
$ sudo dnf install ssmtp
5a) 如何在 Linux 上使用 ssmtp 命令发送邮件
ssmtp 同样简单易用。使用下面的 ssmtp 命令格式发送邮件。
$ echo -e "Subject: Test Mail\nThis is the mail body" > /tmp/ssmtp-mail.txt
$ ssmtp 2daygeek@gmail.com < /tmp/ssmtp-mail.txt更多推荐
所有评论(0)