Linux环境配置QQ邮箱发送邮件
Linux环境配置QQ邮箱发送邮件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | -- 安装 yum install -y mailx -- 配置 cat > /etc/mail.rc <<"EOF" set from=646634621@qq.com #发件人 set smtp=smtps://smtp.qq.com:465 #qq邮箱的smtp server和端口 set smtp-auth-user=646634621@qq.com #发件人的用户名 set smtp-auth-password=xxxxxxxx #授权码 具体可以登录自己的QQ邮箱开启smtp并且获取到授权码 set smtp-auth=login #默认,SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式 set smtp-use=starttls set ssl-verify=ignore #存放QQ邮箱SSL证书的位置 set nss-config-dir=/root/.certs/ EOF |
获取证书:
1 2 3 4 5 6 7 | mkdir -p /root/.certs/ echo -n | openssl s_client -connect smtp.qq.com:465 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ~/.certs/qq.crt certutil -A -n "GeoTrust SSL CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt certutil -A -n "GeoTrust Global CA" -t "C,," -d ~/.certs -i ~/.certs/qq.crt certutil -L -d /root/.certs cd /root/.certs/ certutil -A -n "GeoTrust SSL CA - G3" -t "Pu,Pu,Pu" -d ./ -i qq.crt |
发送邮件:
1 2 3 | echo '内容' | mail -s '主题' lhrbest@qq.com echo '内容' | mail -s '主题' -a '附件路径' lhrbest@qq.com echo '内容' | mail -s '主题' -a '附件路径' lhrbest@qq.com,646634621@qq.com |
-b<地址>:指定密件副本的收信人地址;
-c<地址>:指定副本的收信人地址;
本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!-f<邮件文件>:读取指定邮件文件中的邮件;
-i:不显示终端发出的信息;
-I:使用互动模式;
-n:程序使用时,不使用mail.rc文件中的设置;
-N:阅读邮件时,不显示邮件的标题;
-s<邮件主题>:指定邮件的主题;
-u<用户帐号>:读取指定用户的邮件;
-v:执行时,显示详细的信息。
带附件发送邮件
使用mail命令
mail
命令是mailutils(On Debian)或mailx(On RedHat)包中的一部分,我们可以使用他在命令行里面发送消息。
如果你的系统没有安装mail命令,可以使用下面的方式安装:
1 2 | $ sudo apt-get install mailutils (On Debian) # yum install mailx (On RedHat or CentOS) |
现在我们来使用mail命令来发送带附件的邮件,如下:
1 | echo "这里输入你邮件内容" | mail -s "邮件标题" -a file.txt 646634621@qq.com |
在上面的命令中,-s
参数用于指定消息主题;-a
参数指定需要发送的附件路径,貌似这个不能发送多个附件。
当然,我们可以将邮件的内容存到一个文件中,比如下面我们把邮件的内容存储到message.txt文件中,然后发送:
1 | mail -s "邮件标题" -a file.txt 646634621@qq.com < message.txt |
我们在发送附件的时候出现下面的错误:
1 | send-mail: fatal: iteblog(40010): message file too big |
从上面的错误信息可以看出,我们发送的附件太大了,我们可以通过以下两种方法来加大附件大小的限制:
第一种:
1 2 3 4 | [root@iteblog.com ~]$ postconf message_size_limit message_size_limit = 51200000 echo "message_size_limit = 102400000" >> /etc/postfix/main.cf && service postfix reload Reloading Postfix configuration...done. |
第二种:
1 2 3 4 5 6 7 | [root@iteblog.com ~]$ postconf -e message_size_limit=302400000 [root@iteblog.com ~]$ service postfix restart Shutting down postfix: [ OK ] Starting postfix: [ OK ] [root@iteblog.com ~]$ postconf message_size_limit message_size_limit = 302400000 [root@iteblog.com ~]$ |
两种方法都可以设置。
使用mutt命令
mutt是一个流行轻量级的电子邮件客户端命令,我们同样可以使用它发送带附件的邮件,如果你的电脑没有安装这个命令,请使用下面命令安装:
1 2 | $ sudo apt-get install mutt # yum install mutt |
现在我们可以使用mutt命令发送带附件的邮件了:
1 | echo "这里输入你邮件内容" | mutt -s "邮件标题" 646634621@qq.com -a file.txt |
从上面可以看出,mutt
的使用和 mail
命令很类似,更多关于它的使用参数可以直接 man mutt
查看。
使用mailx命令
mailx
命令看起来和mutt
命令很类似,如果你电脑没安装这个命令,可以使用下面方法来安装:
1 2 | $ sudo apt-get install mailutils # yum install mailx |
然后可以使用下面命令发送带附件的邮件:
1 | echo "这里输入你邮件内容" | mailx -s "邮件标题" -a file.txt 646634621@qq.com |
使用mpack命令
首先使用下面命令安装好这个命令:
1 2 | $ sudo apt-get install mpack # yum install mpack |
然后可以使用下面命令发送带附件的邮件:
1 | $ mpack -s "邮件标题" file 646634621@qq.com |