发布时间:2025-12-10 11:43:15 浏览次数:1
本文将简要阐述使用 telnet 以及 smtp.qq.com 如何发送一个邮件,在本文中我们假设读者:
使用你的 QQ 号登录 mail.qq.com。点击“设置” →\rightarrow→ “账户” →\rightarrow→ “POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”,选择“开启 POP3/SMTP 服务”。开启后,QQ 邮箱会给出一个 “邮箱授权码”,一般是一串随机的小写字母,这个授权码将在接下来的步骤中被使用。
连接成功后,需要进行基本的身份认证,依次输入以下四行内容:
登录成功后,屏幕上会显示诸如 235 Authentication successful 的一行内容。
在确保登录成功的前提下,输入以下两行内容:
MAIL FROM: <你的邮箱>RCPT TO: <收件人的邮箱>这一步需要注意:
收件人邮箱只要是一个合法且存在的邮箱即可,没有过多讲究。
在指定了发件人和收件人后,你需要输入一个 DATA 命令,该命令独占一行内容。
DATAFrom: 你的邮箱To: 收件人邮箱Subject: 邮件主题邮件内容.尽管在第三步中,我们已经指定了发件人和收件人,此处不写 From: 与 To: 有时邮件也能正常被投递。但是由于很多邮件系统有反垃圾系统,因此,正确地填写邮件头部的 From,,To 与 Subject 往往明智的选择。邮件内容中可以有多行内容,但邮件内容的最后一行必须以单独的一个英文句号作为结束,因此请不要在邮件内容的其他部分中安插独占一行的英文句号。
内容输入结束后,如果邮件正常发送,屏幕上将显示一行诸如 250 OK: queued as. 的内容。此后输入 QUIT 命令即可退出 TELNET。
下面给出了一次 TELNET 发送邮件的完整交互过程的示例:
$ telnet smtp.qq.com 587Trying 14.18.175.202...Connected to smtp.qq.com.Escape character is '^]'.220 newxmesmtplogicsvrszb6-0.qq.com XMail Esmtp QQ Mail Server.EHLO smtp.qq.com250-newxmesmtplogicsvrszb6-0.qq.com250-PIPELINING250-SIZE 73400320250-STARTTLS250-AUTH LOGIN PLAIN XOAUTH XOAUTH2250-AUTH=LOGIN250-MAILCOMPRESS250 8BITMIMEAUTH LOGIN334 VXNlcm5hbWU6************334 UGFzc3dvcmQ6************************235 Authentication successfulMAIL FROM: <premierbob@qq.com>250 OKRCPT TO: <guogn2120@mails.jlu.edu.cn>250 OKDATA354 End data with <CR><LF>.<CR><LF>.From: premierbob@qq.comTo: guogn2120@mails.jlu.edu.cnSubject: test-smtphello world!from telnet..250 OK: queued as.QUIT221 Bye.Connection closed by foreign host.$上述星号位置为 QQ 号与邮箱授权码。
如果你在邮件内容中使用中文,你很可能会面临着收件时看到乱码的问题。早期的 SMTP 协议要求使用者只能发送标准的 7-bit ASCII 码字符。当我们想要在首部使用非 ASCII 码字符时,我们可以使用 quoted-printable 和 base64 两种技术。当我们想要在邮件内容中使用非 ASCII 码字符时,可以参考 RFC-1511 中对 MIME(Multiple Internet Mail Extensions) 的规定。在此我们结合 base64 和 MIME 给出一种可行的解决方案:
DATAFrom: 你的邮箱To: 目标邮箱Subject: =?UTF-8?B?57yW56CB5ZCO55qE5Li76aKY?=MIME-Version:1.0Content-type: text/plain; charset=utf-8Content-Transfer-Encoding: 8bit邮件内容.上文中 57yW56CB5ZCO55qE5Li76aKY 处需要填入原主题的 base64 编码,但你需要确定,被编码的字符串在编码前确实采用了是UTF-8 编码,而不是 GB2312 等其他中文编码。如果你不熟悉如何使用程序获得字符串的 base64 编码,你可以使用网站 https://www.base64encode.org 或其他编码工具。调整 Content-type 一行中的 charset=utf-8 即可适应邮件内容中的不同字符编码。