专栏首页江湖安得便相忘如何帅(zhuang)气(x)的发邮件

如何帅(zhuang)气(x)的发邮件

上期学习:UTF-8与UTF-16

既然目的是要非常帅气的发邮件,自然不能使用平常使用的网页客户端、PC客户端。

准备帅气的工具:telnet

邮件服务器:smtp.sina.cn,端口:25

第一步:连接邮件服务器

$ telnet smtp.sina.cn 25
... 
... 220 smtp-97-23.smtpsmail.fmail.bx.sinanode.com ESMTP

响应代码220:代表邮件服务就绪。协议是ESMTP:SMTP扩展协议

第二步:和邮件服务器打招呼:你好

EHLO sina
... 250-smtp-97-23.smtpsmail.fmail.bx.sinanode.com
... 250-AUTH LOGIN PLAIN
... 250-AUTH=LOGIN PLAIN
... 250-STARTTLS
... 250 8BITMIME

响应代码250:表示请求动作完成

第三步:认证邮件服务器账号

AUTH LOGIN
... 334 VXNlcm5hbWU6

响应代码334:等待输入信息

继续输入账号的base64编码

dGVzdEBzaW5hLmNu
... 334 UGFzc3dvcmQ6

继续输入密码的base64编码

MTIzcXdlYXNk
... 235 OK Authenticated

响应代码235:认证成功

第四步:设置发件人、收件人或者抄送人

MAIL FROM:<test@sina.cn>
RCPT TO:<test@qq.com>
RCPT TO:<test1@sina.cn>
RCPT TO:<test2@qq.com>

收件人与抄送均使用RCPT TO设置。每输入一条会响应 250 ok。

第五步:设置邮件内容

DATA
... 354 End data with <CR><LF>.<CR><LF>

代码响应354:数据起始,以<CR><LF>.<CR><LF>为结束符号

继续输入

MIME-Version:1.0
Content-Type:text/html;charset=utf-8
Content-Transfer-Encoding: BASE64
From:=?utf-8?B?5rGf5rmW5a6J5b6X5L6/55u45b+Y?= <test@sina.cn>
To:<test@qq.com>;<test1@sina.cn>
Cc:<test2@qq.com>
Subject:=?utf-8?B?5qCH6aKY?=

PGEgaHJlZj0iaHR0cHM6Ly9tYWlsLnNpbmEuY29tLmNuIj7msZ/muZblronlvpfkvr/nm7jlv5g8L2E+

.

数据header部分定义协议版本,内容类型,与传输编码。发送人,收件人,抄送人,主题和正文,最后是数据结束符号。

From 发件人可配置 名称 <邮件>

To 收件人,多人使用分号分隔

Cc 抄送人,多人使用分号分隔

Subject 主题

Content-Transfer-Encoding: BASE64 使用base64编码传输内容,正文传输时需要base64编码,例子中的内容为<a href="https://mail.sina.com.cn">江湖安得便相忘</a>

主题与发送人中是一个固定的模式 =?utf-8?B?xxxxxx?= , xxx部分是base64编码的数据,目的是解决中文乱码。

最后:结束

QUIT

响应代码221:服务关闭

查看邮件是否已经发出去了呢?

【文章参考】

https://tools.ietf.org/html/rfc1341

https://tools.ietf.org/html/rfc1869

https://tools.ietf.org/html/rfc2821

https://tools.ietf.org/html/rfc2554

本文分享自微信公众号 - 可回收BUG(way-of-full-stack),作者:江湖安得便相忘

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-10-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一起学Rust-实战leetcode(七)

    判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

    江湖安得便相忘
  • 一起学Rust-实战leetcode(四)

    给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储一位数字。

    江湖安得便相忘
  • UTF-8与UTF-16

    UTF-8,一种对Unicode编码的变长形式的实现,Unicode还包括其他的实现形式比如UTF-16 (BE, LE) ,UTF-32 (BE,LE) 。

    江湖安得便相忘
  • Let’s Encrypt 保驾护航的 HTTPS 网站数量已突破1亿

    备受欢迎的安全证书颁发机构 Let’s Encrypt 宣布,当前它已经为超过 1 亿个网站保驾护航,而且这个数字还在持续增长。仅在上个月,使用 HTTPS 保...

    周俊辉
  • 利用python控制Autocad:pyautocad方式

    发现pyautocad模块:可以用python控制autocad的包。今天把文档中的重点内容摘录出来,以后绘图、计算大工程量、或者识别施工图的时候时候也许可以用...

    砸漏
  • 5声母域名备受欢迎 btczj.com 2万被秒

    域名被秒、域名易主的消息并不常见,最近就有HY.com成功易主;ljj.com以七位数的价格卖终端等等等,近日,一5声母域名:btczj.com以一口...

    躲在树上的域小名
  • 域名creek.com超25万高价结拍

    2017年快要结束了,米市却从未停止过热闹,反而呈现一种越来越热闹的态势。前有396.com七位数易主,后有yon.com超60万元结拍,现在cr...

    躲在树上的域小名
  • 域名aumo.com被日本社交巨头格力公司收购

    近日国内域名交易市场不断传出域名交易的消息,而海外交易市场更是热闹非凡。近日传出不少域名被终端收购的消息,域名应用价值不容小觑!

    躲在树上的域小名
  • 域名X.com被特斯拉CEO拿来卖帽子

    今年7月份,单字母的域名X.com被特斯拉的CEO埃隆·马斯克购入,引起了圈内不小的关注。而当X.com被启用时,竟然跳转到售卖帽子的页面。

    躲在树上的域小名
  • Go 每日一库之 commonregex

    有时,我们会遇到一些需要使用字符串的匹配和查找的任务。并且我们知道这种情况下,使用正则表达式是最简洁和优雅的。为了完成某个任务特地去系统地学习正则表达式费时费力...

    用户7731323

扫码关注云+社区

领取腾讯云代金券