发送email过程中的验证是怎么执行的?


我不是问的具体用什么算法。例如用SMTP-AUTH请求接收/转发邮件需要用户验证,那这个用户是怎么来的?比方说我们连接到smtp.qq.com用的就是自己的qq邮箱账户密码,那用qq邮箱发给163邮箱时qq给smtp.163.com提供的账户密码是什么呢?假设我有一个域名要自己架设邮件服务器那这个账户密码是怎么来的呢?

smtp email

啊啊爸爸好厉害 10 years, 3 months ago

你可以去看看smtp、pop3协议,很简单的协议。
几年前写过简单的邮件服务器,没记错的话,smtp可以不验证用户密码的。细节已经记不清了,说说大体的意思吧。
你的用账户、密码登录qq邮箱,是qq用来验证你对这个邮箱的所有权的,不涉及到发邮件;
qq邮件服务器把邮件推给163邮件服务器,是不需要提供密码的。你想啊,提供你qq邮箱的用户名密码毫无意义,提供收件人的用户名密码更不可能。只要你的发件服务器、发件邮箱不被特殊对待(例如黑名单之类),收件人的邮箱存在(有的会检查目标邮箱是否存在),就可以发送。
pop3是收邮件的,这个协议是要求验证用户名密码的。例如你的foxmail客户端,在于邮件服务器建立连接时,会被要求提供用户名密码,通过了才可以拉取邮件。
还有那比较先进的imap就比较高大上了,比较复杂,没了解过。

jtfan answered 10 years, 3 months ago

Your Answer