linux 发送邮件到163或者QQ邮箱

                                                           linux 发送邮件到163或者QQ邮箱

我想,在开始发送邮件前有些概念需要理解,这样可能对后面的学习会有所帮助。

 

POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议。它是因特网电子邮件的第一个离线协议标准,POP3允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。(不是特别安全的协议,因为邮件本地保存了,服务端和客户端各一个副本,黑客不管攻破哪个端都会造成安全问题。)

SMTP

SMTP 的全称是“Simple Mail Transfer Protocol”,即简单邮件传输协议。它是一组用于从源地址到目的地址传输邮件的规范,通过它来控制邮件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。SMTP 服务器就是遵循 SMTP 协议的发送邮件服务器。 
  SMTP 认证,简单地说就是要求必须在提供了账户名和密码之后才可以登录 SMTP 服务器,这就使得那些垃圾邮件的散播者无可乘之机。 
  增加 SMTP 认证的目的是为了使用户避免受到垃圾邮件的侵扰。

IMAP

IMAP全称是Internet Mail Access Protocol,即交互式邮件存取协议,它是跟POP3类似邮件访问标准协议之一。不同的是,开启了IMAP后,您在电子邮件客户端收取的邮件仍然保留在服务器上,同时在客户端上的操作都会反馈到服务器上,如:删除邮件,标记已读等,服务器上的邮件也会做相应的动作。所以无论从浏览器登录邮箱或者客户端软件登录邮箱,看到的邮件以及状态都是一致的。(只在服务端保存邮件,安全性大大提高,黑客只有攻破服务端才可以取得邮件的完全控制权,特别是重要附件的取得会给黑客增加很大难度。)


 



 




那么,服务端,也就是163邮箱这边或者QQ邮箱这边有些什么呢?

 




Linux作为客户端,都有些什么与邮件相关的软件呢?

可以明确的是,一般发行版有postfix和sendmail(sendmail可能在centos7这样的高版本没有的)

postfix的产生是为了替代传统的sendmail.相较于sendmail,postfix在速度。性能和稳定性上都更胜一筹。如今眼下许多的主流邮件服务事实上都在採用postfix. 当我们须要一个轻量级的的邮件server是,postfix不失为一种选择。

1. postfix是免费的:
    postfix想要作用的范围是广大的Internet用户。试图影响大多数的Internet上的电子邮件系统,因此它是免费的。
2. 更快:
    postfix在性能上大约比sendmail快三倍。一部执行postfix的台式PC每天能够收发上百万封邮件。
3. 兼容性好:
    postfix是sendmail兼容的,从而使sendmail用户能够非常方便地迁移到postfix。Postfix支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
   4. 更健壮:
postfix被设计成在重负荷之下仍然能够正常工作。当系统执行超出了可用的内存或磁盘空间时,postfix会自己主动降低执行进程的数目。当处理的邮件数目增长时,postfix执行的进程不会跟着添加。
5. 更灵活:
postfix是由超过一打的小程序组成的,每一个程序具备特定的功能。你能够通过配置文件设置每一个程序的执行參数。

当然,postfix是服务端,和发送邮件没有关系,我想你肯定没有见过服务端给另一个服务端发送邮件的场景吧。

通常的,postfix服务是开启的,运行的,systemctl status postfix  你可以看到服务是运行的,不过和发送邮件一毛关系没有,可以不用理会。

发送邮件的主角是下面这个mailx软件,如下所示,mail命令其实是mailx,做了软连接了嘛。

[root@centos7 ~]# rpm -qa |grep mail
libreport-plugin-mailx-2.1.11-38.el7.centos.x86_64
mailx-12.5-16.el7.x86_64
[root@centos7 ~]# ls -alh /usr/bin/mail
lrwxrwxrwx. 1 root root 5 Jan 23 22:38 /usr/bin/mail -> mailx

如果想对该命令深入了解,可以man  mail 看看,2200行左右的内容够研究了。

正戏来了,发送邮件的方法如下:

vim /etc/mail.rc  这个文件末尾添加如下内容:

set [email protected]
set smtp=smtp.163.com
set [email protected]
set smtp-auth-password=授权密码
set smtp-auth=login

第二行的不变,如果是QQ邮箱,改成smtp.qq.com 即可。[email protected]是你的邮箱地址,授权密码是在163或者QQ邮箱设置选项内扫码那个得到的,一定要先记录哦。
 

1)  无邮件正文

  •   mail -s "主题"  收件地址

 mail -s "测试"  [email protected]

2) 有邮件正文

  •  mail -s "主题"  收件地址< 文件(邮件正文.txt)

 mail -s "邮件主题"  [email protected] < /data/findyou.txt

  •  echo "邮件正文" | mail -s 邮件主题  收件地址

echo "邮件正文内容" | mail -s "邮件主题"  [email protected]

  •  cat 邮件正文.txt | mail -s 邮件主题  收件地址 

 cat  /data/findyou.txt | mail -s "邮件主题"  [email protected]

3)  带附件

  •  mail -s "主题"  收件地址  -a 附件 < 文件(邮件正文.txt) 

 mail -s "邮件主题"  [email protected] -a /data/findyou.tar.gz < /data/findyou.txt

 总结:

Linux发送邮件到163或者QQ邮箱,第一步,是在服务端开启那两个服务,并取得授权密码,以在Linux客户端内登陆邮箱并写邮件然后发送到服务端,Linux作为客户端,使用mailx这个软件发送邮件,和postfix服务没有关系,可停可不停

[root@centos7 ~]# echo  "my first test" | mail -vs " title" -a anaconda-ks.cfg  [email protected]
Resolving host smtp.163.com . . . done.
Connecting to 220.181.12.15:smtp . . . connected.
220 163.com Anti-spam GT for Coremail System (163com[20141201])
>>> EHLO centos7
250-mail
250-PIPELINING
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-coremail 1Uxr2xKj7kG0xkI17xGrU7I0s8FY2U3Uj8Cz28x1UUUUU7Ic2I0Y2UrSzme8UCa0xDrUUUUj
250-STARTTLS
250 8BITMIME
>>> AUTH LOGIN
334 dXNlcm5hbWU6
>>> c2hpZ3VhbmdmZWlzaGk4MjBAMTYzLmNvbQ==
334 UGFzc3dvcmQ6
>>> Q1hYSkxZWURLVFpUVVNGWQ==
235 Authentication successful
>>> MAIL FROM:<[email protected]>
250 Mail OK
>>> RCPT TO:<[email protected]>
250 Mail OK
>>> DATA
354 End data with <CR><LF>.<CR><LF>
>>> .
250 Mail OK queued as smtp11,D8CowAAnY3Tp3ytgIz2ABg--.61081S2 1613488106
>>> QUIT
221 Bye

 mail -v 是显示详细发送过程。以上使用的是组合命令

发送成功的截图:

 

猜你喜欢

转载自blog.csdn.net/alwaysbefine/article/details/113829379