三种使用Linux命令发送邮件
admin
2023-03-06 10:22:31
0次


使用mail命令

mail命令是mailutils(On Debian)或mailx(On RedHat)包中的一部分,我们可以使用他在命令行里面发送消息。
如果你的系统没有安装mail命令,可以使用下面的方式安装:

$ sudo apt-get install mailutils (On Debian)

# yum install mailx (On RedHat or CentOS)

现在我们来使用mail命令来发送带附件的邮件,如下:

echo "这里输入你邮件内容" | mail -s "邮件标题" -a file.txt 59090939@qq.com

在上面的命令中,-s 参数用于指定消息主题;-a 参数指定需要发送的附件路径,貌似这个不能发送多个附件,-v参数显示详细的发送过程。
当然,我们可以将邮件的内容存到一个文件中,比如下面我们把邮件的内容存储到message.txt文件中,然后发送:

mail -s "邮件标题" -a file.txt 59090939@qq.com < message.txt

这时候的message.txt是以文本内容在邮件中显示的,并不是以附件的形式。

我们在发送附件的时候出现下面的错误:

send-mail: fatal: xiao(40010): message file too big

从上面的错误信息可以看出,我们发送的附件太大了,我们可以通过以下两种方法来加大附件大小的限制:
第一种:

[root@xiao ~]$ postconf message_size_limit

message_size_limit = 51200000

echo "message_size_limit = 102400000" >> /etc/postfix/main.cf && service postfix reload

Reloading Postfix configuration...done.

第二种:

[root@xiao ~]$ postconf -e message_size_limit=302400000

[root@xiao ~]$ service postfix restart

Shutting down postfix: [ OK ]

Starting postfix: [ OK ]

[root@xiao ~]$ postconf message_size_limit

message_size_limit = 302400000

两种方法都可以设置

配置邮箱账户

Vi /etc/mail.rc 在文件的最后添加如下两段中的一段,国内IP的话一般第一段就可以,国外有些IP要用第二段,安全级别更高

set from=59090939@qq.com

set smtp="smtp.qq.com"

set smtp-auth-user="59090939@qq.com"

set smtp-auth-password="ttvingav"

set smtp-auth=login

或者

set from=59090939@qq.com

set smtp="smtp.qq.com:587"

set smtp-auth-user="59090939@qq.com"

set smtp-auth-password="ttvingavu"

set smtp-auth=login

set smtp-use-starttls

set nss-config-dir=/etc/openldap/certs

使用mutt命令

mutt是一个流行轻量级的电子邮件客户端命令,http://www.mutt.org/

我们同样可以使用它发送带附件的邮件,如果你的电脑没有安装这个命令,请使用下面命令安装:

$ sudo apt-get install mutt

# yum install mutt

源码安装

wget ftp://ftp.mutt.org/pub/mutt/mutt-1.11.2.tar.gz

tar –zvxf mutt-1.11.2

cd mutt-1.11.2

./configure --prefix=/usr/local/mutt --enable-pop --enable-smtp --with-ssl --with-sasl
--enable-pop 启用pop
--enable-smtp 启用smtp
--with-ssl --with-sasl 在启用上述协议的情况下,必须使用更安全的加密

安装
make && make install

因为测试帐号是QQ邮件,qq邮件使用smtp协议的时候要求必须使用ssl安全连接,而在mutt里使用安全连接

又必须使用sasl加密,所以上述2个安全组件在编译安装的时候得加上。要不然发送邮件的时候会

出现“SMTP authentication requires SASL”或者另外一个跟ssl有关的错误

配置邮箱账户vi /etc/Muttrc 文件的未尾添加如下内容

set use_from=yes

set use_envelope_from=yes

set realname="59090939"

set from="59090939@qq.com"

set smtp_pass="ttvingavu"

set smtp_url="smtps://59090939@smtp.qq.com:465/"

国内用465端口,用587会报如下错误:

gnutls_handshake: 收到一个意外的 TLS 数据包。

无法发送此信件

现在我们可以使用mutt命令发送带附件的邮件了:

echo "这里输入你邮件内容" | mutt -s "邮件标题" -a file.txt 59090939@qq.com

从上面可以看出,mutt 的使用和 mail 命令很类似,更多关于它的使用参数可以直接 man mutt 查看。

使用msmtp

云方式安装

$ sudo apt-get install msmtp

# yum install mstp

源码方式安装

https://marlam.de/msmtp/

wget https://marlam.de/msmtp/releases/msmtp-1.8.1.tar.xz

xz -d msmtp-1.8.1.tar.xz

tar -xvf msmtp-1.8.1.tar

cd msmtp-1.8.1

yum -y install gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel

如果不yum instll 那么后面可能会季报如下错:

msmtp: support for TLS is not compiled in

./configure --prefix=/usr/local/msmtp --sysconfdir=/usr/local/msmtp/etc --with-ssl=openssl && sudo make && sudo make install

在用户的主目录中创建或编辑msmtp配置文件。我使用VI编辑器来实现这一目标

vi /etc/msmtprc

account gmail

tls on

auth on

host smtp.gmail.com

port 587

user user1@gmail.com

from user1@gmail.com

password ******

或

account qqmail

tls on

auth on

tls_starttls off

tls_trust_file /etc/ssl/certs/ca-bundle.crt

host smtp.qq.com

port 465

user 59090939@qq.com

from 59090939@qq.com

password ttvingav

由于该文件包含密码等敏感数据,因此您应分配安全权限

chmod 600 /etc/msmtprc

测试发送邮件,如果不出意外的,应该可以正常发出邮件。

echo "hello" |msmtp -a qqmail -C /usr/local/msmtp/etc/msmtprc 59090939@qq.com

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...