我正在尝试使用SubethaSmtp客户端软件包开发一个简单的SMTP客户端以进行测试。我想使用SMTPClient类而不是SmartClient类来进行更多控制,但我无法弄清楚如何使用SMTPClient编写邮件数据,暴露给公共或外部子类的唯一OutputStream是用于发送命令的那个,用于发送数据(在发送DATA命令之后)仅暴露给同一包(SmartClient)中的类。 我在这里错过了什么吗?我想知道如何编写SMARTClient的直接子类来解决这个问题。
答案 0 :(得分:0)
看起来你是对的,你不能简单地扩展SMTPClient并获得类似于SmartClient所具有的访问权限,是同一个包类。
此时你可以:
1)从https://github.com/voodoodyne/subethasmtp分叉你自己的应用程序版本,用它做你喜欢的任何事情,或者
2)一直走下去并实现自己的SMTPClient版本,因为SMTPClient.dotTerminatedOutput;
使用的受保护的SmartClient.dataWrite()
包实际上只是实例化了
...
this.rawOutput = this.socket.getOutputStream();
this.dotTerminatedOutput = new DotTerminatedOutputStream(this.rawOutput);
...