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 from=XXXXX@163.com
set smtp=smtp.163.com
set smtp-auth-user=XXXXX@163.com
set smtp-auth-password=授权密码
set smtp-auth=login

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

1)  无邮件正文

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

mail -s "测试"  1968089885@foxmail.com

2) 有邮件正文

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

mail -s "邮件主题"  XXXXX@163.com < /data/findyou.txt

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

echo "邮件正文内容" | mail -s "邮件主题"  XXXXX@163.com

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

cat  /data/findyou.txt | mail -s "邮件主题"  XXXXX@163.com

3)  带附件

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

mail -s "邮件主题"  XXXXX@163.com -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  XXXXXX@163.com
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:<XXXXX@163.com>
250 Mail OK
>>> RCPT TO:<XXXXX@163.com>
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 是显示详细发送过程。以上使用的是组合命令

发送成功的截图:

linux 发送邮件到163或者QQ邮箱相关推荐

  1. Spring Boot 整合163或者qq邮箱发送验证码

    前记 最近做的项目中注册功能要用到验证码,本来想用阿里云的短信服务,但是有点小贵,就另辟捷径,选择了用邮箱来发送验证码.记录一下整合过程,也希望能帮助一些有需要的人. 正文 1.Spring Boot ...

  2. linux如何写邮件到QQ邮箱

    linux如何写邮件到QQ邮箱 作为一名运维人,肯定不会,也不想7*24h待在电脑旁,观察服务器的情况. 要做一名高级运维,必会脚本. [注:]模拟场景:当剩余可用内存不足时,linux服务器会自动发 ...

  3. Java使用163和QQ邮箱发邮件

    "细雨梦回鸡塞远,小楼吹彻玉笙寒" 序 现在做的项目有做到流程审批,到下一节点时,会给节点的负责人发送邮件通知.流程都是手写的代码,没有用到流程引擎. 正文 其实通过QQ邮箱或者1 ...

  4. 163、QQ邮箱收不到Github的邮件解决方法

    163.QQ邮箱收不到Github的邮件解决方法 20230505171221||300

  5. 利用SMTP协议实现邮件的发送(以163和qq邮箱为例)

    1.实验的准备即环境 1.windows系统 2.telnet 客户端 win10除了需要开启客户端之外还不够,还需要自己下载 telnet server并安装,下载官网:GoodTech Syste ...

  6. php怎么查看qq邮箱,thinkphp实现163、QQ邮箱收发邮件的方法

    用了很长时间去一步一步摸索,终于先在163 网易邮箱上测试成功了,下面就把这个过程分享给大家. 在进入正题这前先看下网易(163)邮箱的服务器地址和端口号: 一.前期准备 使用网易邮箱,当然要注册个账 ...

  7. Python办公自动化之收发邮件--163和qq邮箱

    利用Python发送接收邮件 1.邮件相关概念 POP3:Post Office Protocol 3的简称,即邮局协议的第3个版本,它规定怎样将个人计算机连接到Internet的邮件服务器和下载电子 ...

  8. python凯撒密码详解_四十八、Python用smtp发邮件详解(163和QQ邮箱)

    Python发邮件详解 一.利用163的smtp发送邮件 import smtplibfrom email.mime.text import MIMETextfrom email.header imp ...

  9. java发送邮件到qq邮箱_javamail发送邮件(简单邮件qq邮箱)

    /* * com.sun.mail javax.mail 1.5.4 */ /*上面是maven需要添加的依赖*/ package com.weiling.wl_erp.util; import or ...

最新文章

  1. 数据算法——Spark二次排序
  2. (chap1 网络基础知识)网络的构成要素:(3)交换机
  3. STM32 CJSON解析说明
  4. User status profile field in WebUI
  5. mvcc原理_Mysql MVCC实现原理
  6. python数据分析课程哪个好-数据分析课程里面,python是重点!
  7. ASN.1编解码:asn1c-ORAN-E2AP编解码示例
  8. 中国 GitHub 开发者数量年增长 37%,为全球最快
  9. c语言程序改错:求两个整数的最小公倍数,【C语言】求两个整数的最大公约数、最小公倍数...
  10. SpringMVC 配置式开发-BeanNameUrlHandlerMapping(七)
  11. NUC11猎豹峡谷设置U盘启动
  12. 富勒wms系统里的定时器id_视频案例 全面升级的康缘药业物流系统
  13. html网页图片下方空隙太大,网页制作中图片上下间为什么会有空隙?解决办法...
  14. 【嵌入式系统开发12】在stm32F103C8T6环境下,用HAL库,采用中断模式编程,控制LED的高亮与熄灭
  15. Arch Linux 天坑
  16. SEO实战:怎样打劫肥龙龙的博客流量
  17. PL-SLAM论文翻译
  18. week after week----友情岁月,匆匆
  19. Oracle备份恢复(一)
  20. python做工资条_4种工资条制作方法,总有一款适合你

热门文章

  1. 多級commentable處理
  2. endnote没有加载项_word中手动添加endnote的加载项
  3. 固定码率(CBR)与可变码率(VBR)
  4. 图像风格迁移cvpr2020_CVPR 2020 论文大盘点-文本图像篇
  5. mysql 家谱树查询_中国家谱族谱数据库可以登录、查询了
  6. 高中数学必修一:集合高考典型例题解题技巧方法
  7. VLink的简单验证过程
  8. Tika解析rar文件
  9. vue print 解决针式打印机打印失败不清晰的问题
  10. VGA线 1080P之伤 中秋节篇