如何子类SubethaSmtp SMTPClient类

时间:2016-02-26 11:01:29

标签: java subclass smtpclient

我正在尝试使用SubethaSmtp客户端软件包开发一个简单的SMTP客户端以进行测试。我想使用SMTPClient类而不是SmartClient类来进行更多控制,但我无法弄清楚如何使用SMTPClient编写邮件数据,暴露给公共或外部子类的唯一OutputStream是用于发送命令的那个,用于发送数据(在发送DATA命令之后)仅暴露给同一包(SmartClient)中的类。 我在这里错过了什么吗?我想知道如何编写SMARTClient的直接子类来解决这个问题。

1 个答案:

答案 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);
...