ounisangw / CS305-23F-Assignment-1

This is a repository for Programming Assignment 1 in SUSTech CS305, Computer Network course.
11 stars 2 forks source link

SMTP Anonymous logins 问题 #8

Open XiaoLeGG opened 1 year ago

XiaoLeGG commented 1 year ago

Anonymous logins的描述原文如下:

Verify the existence of sender if the connection is from an agent, and the existence of receiver if the connection is from another SMTP server. Generate a delivery failure message and mail it back to the sender if verification above failed. (i.e. support command: HELO)

能否对这个要求给予更加详细的说明?我的问题如下:

ounisangw commented 1 year ago
  1. 验证操作不是必须在处理HELO/EHLO时完成。理论上,验证身份的这一步骤有单独的VRFY命令来完成。然而由于本作业中不需要实现这一命令,因此实际实现身份验证的时候可以在合理的地方,以任意形式实现。(如,quit命令后解析mail from和rcpt to的参数并加以处理)
  2. 如何判别是“其他server”还是agent:如上条回答所说,可以通过解析mail from和rcpt to的参数,如果发信人域名与本服务器域名一致,则其来源于agent,可以检查其是否存在于accounts中;如果去信方域名与本服务器域名不一致,则去信方是server,检查去信域名服务器是否存在。
XiaoLeGG commented 1 year ago
  1. 验证操作不是必须在处理HELO/EHLO时完成。理论上,验证身份的这一步骤有单独的VRFY命令来完成。然而由于本作业中不需要实现这一命令,因此实际实现身份验证的时候可以在合理的地方,以任意形式实现。(如,quit命令后解析mail from和rcpt to的参数并加以处理)
  2. 如何判别是“其他server”还是agent:如上条回答所说,可以通过解析mail from和rcpt to的参数,如果发信人域名与本服务器域名一致,则其来源于agent,可以检查其是否存在于accounts中;如果去信方域名与本服务器域名不一致,则去信方是server,检查去信域名服务器是否存在。

假如服务器使用exmail.qq.com,mail from的host是mail.sustech.edu.cn,通过dns的MX记录找到的是mxbiz1.qq.com,这样的话就不匹配了,服务器没有直接通过exmail.qq.com指向mxbiz1.qq.com的方法,就没办法判断该mail from的host是否来自agent了,不修改配置文件似乎没法做agent的verification?

我们是否可以修改配置文件以达到辅助server的目的?包括后续的与朋友传递邮箱,似乎都需要对server.py以外的代码或配置文件进行更改,这在作业中是否是允许的?