.../lib/modules/Protocols.pmod/SMTP.pmod/module.pmod:402: Undefined identifier "features".
Anyone working on this one?
I've told Marcus to fix it, but I guess he hasn't had the time (or read the message).
/ Martin Nilsson (saturator)
Previous text:
2004-02-22 09:16: Subject: SMTP features
.../lib/modules/Protocols.pmod/SMTP.pmod/module.pmod:402: Undefined identifier "features".
Anyone working on this one?
/ Mirar
Fixed
Note for the commiters of this file: When you modified it, please try also Protocols.LMTP since it inherits much of it.
Martin Nilsson (saturator) @ Pike (-) developers forum wrote:
I've told Marcus to fix it, but I guess he hasn't had the time (or read the message).
/ Martin Nilsson (saturator)
Previous text:
2004-02-22 09:16: Subject: SMTP features
.../lib/modules/Protocols.pmod/SMTP.pmod/module.pmod:402: Undefined identifier "features".
Anyone working on this one?
/ Mirar
Well, I'll fix that tonight. I didn't notice that the LMTP module used the SMTP server... I'll probably be refactor some other things in the SMTP.Server sections within the next weeks or so.
My aim is to replace my current mailer with a pike-based SMTP server with (at least) the same functionality. To do this, I will attempt to rewrite the SMTP.Server into allowing pluggable modules which can provide SMTP-commands and extentions. Any thoughts on how this should be done the right way, is apprciated.
Btw, what is the syntax of the SMTP.Server module in 7.4? Some comments in the code makes me suspect that it is not used the same way as in 7.5...
/ Marcus Agehall (Scanian)
Previous text:
2004-02-22 09:16: Subject: SMTP features
.../lib/modules/Protocols.pmod/SMTP.pmod/module.pmod:402: Undefined identifier "features".
Anyone working on this one?
/ Mirar
On Mon, Feb 23, 2004 at 11:00:04AM +0100, Marcus Agehall (Scanian) @ Pike (-) developers forum wrote:
rewrite the SMTP.Server into allowing pluggable modules which can provide SMTP-commands and extentions.
the smtp protocol module for roxen did this by simply looking for provider modules.
i guess without roxen a way could be to provide a method to set call-back functions for each command. kinda like you can set callbacks for tags in the html parser.
it should of course be possible to override the current commands with those callbacks.
greetings, martin.
I'm also thinking along those lines. I think I will create a SMTPCommand class which can be inherited to create new commands. The API will define several events where the command will receive a callback. To make things easy to change, all commands should be implemented this way, ie the server will not, by itself, contain any command logic.
/ Marcus Agehall (Scanian)
Previous text:
2004-02-23 11:42: Subject: Re: SMTP features
On Mon, Feb 23, 2004 at 11:00:04AM +0100, Marcus Agehall (Scanian) @ Pike (-) developers forum wrote:
rewrite the SMTP.Server into allowing pluggable modules which can provide SMTP-commands and extentions.
the smtp protocol module for roxen did this by simply looking for provider modules.
i guess without roxen a way could be to provide a method to set call-back functions for each command. kinda like you can set callbacks for tags in the html parser.
it should of course be possible to override the current commands with those callbacks.
greetings, martin.
/ Brevbäraren
how is your progress on that. trying to create a minimal standalone mailserver here, we should be able to share the work...
greetings, martin.
After some thought, I decided to start by writing a stand-alone SMTP server before incorporating more code into Pike. That way, I can develop a more complete codebase before committing any changes that may break existing code.
Unfortunately, I got hold of Hubbe's YumeMUD code last week and as it turns out, it was more fun to work on that than writing SMTP server code, so that project took a slight hit. I'll try to keep you posted on my progress though.
/ Marcus Agehall (Scanian)
Previous text:
2004-02-29 15:36: Subject: Re: SMTP features
how is your progress on that. trying to create a minimal standalone mailserver here, we should be able to share the work...
greetings, martin.
/ Brevbäraren
Hello,
Well, I'll fix that tonight. I didn't notice that the LMTP module used the SMTP server... I'll probably be refactor some other things in the SMTP.Server sections within the next weeks or so.
The problem is fixed already.
My aim is to replace my current mailer with a pike-based SMTP server with (at least) the same functionality. To do this, I will attempt to rewrite the SMTP.Server into allowing pluggable modules which can provide SMTP-commands and extentions. Any thoughts on how this should be done the right way, is apprciated.
I made Protocols.SMTP.Server only because I needed Protocols.LMTP.Server but I think it's better to use your own LMTP server than making your own SMTP server. Making yourself a SMTP server is more difficult because you have to cope with other servers which doesn't respect the RFC and break rules and so I think it's better to use an existing software that already did that. LMTP is better IMHO since you can use a well tested SMTP server for speaking to the outside world and still get lot of control other your mail.
About plugin extentions, it already provide a sort of pluggin through the commmands mapping. The stuff is made in launch_functions() and the commands mapping which given a smtp command of the client (mail from: toto@toto.com for example) start the function mail(string argument) with argument = "from: toto@toto.com" using the entry ([ "mail": mail ]) in the commands mapping. All you have to do to extend it is inheriting Protocols.SMTP.Server and changing this mapping to your functions (this is what the LMTP server do).
BTW if you were to changed some parts in Protocols.SMTP you might want to take a look at Procotols.ESMTP.client in Caudium CVS.
Btw, what is the syntax of the SMTP.Server module in 7.4? Some comments in the code makes me suspect that it is not used the same way as in 7.5...
The server is not available in 7.4.
/ David Gourdelier
Well, for me, using a LMTP server is not an option. I want to have SMTP. The current implementation of the SMTP server is fairly minimal and is almost standard compliant. Fixing the standard compliance is fairly easy. As you point out, it's the other way around that is tricky. However, I think it can be solved.
/ Marcus Agehall (Scanian)
Previous text:
2004-02-23 11:51: Subject: Re: SMTP features
Hello,
Well, I'll fix that tonight. I didn't notice that the LMTP module used the SMTP server... I'll probably be refactor some other things in the SMTP.Server sections within the next weeks or so.
The problem is fixed already.
My aim is to replace my current mailer with a pike-based SMTP server with (at least) the same functionality. To do this, I will attempt to rewrite the SMTP.Server into allowing pluggable modules which can provide SMTP-commands and extentions. Any thoughts on how this should be done the right way, is apprciated.
I made Protocols.SMTP.Server only because I needed Protocols.LMTP.Server but I think it's better to use your own LMTP server than making your own SMTP server. Making yourself a SMTP server is more difficult because you have to cope with other servers which doesn't respect the RFC and break rules and so I think it's better to use an existing software that already did that. LMTP is better IMHO since you can use a well tested SMTP server for speaking to the outside world and still get lot of control other your mail.
About plugin extentions, it already provide a sort of pluggin through the commmands mapping. The stuff is made in launch_functions() and the commands mapping which given a smtp command of the client (mail from: toto@toto.com for example) start the function mail(string argument) with argument = "from: toto@toto.com" using the entry ([ "mail": mail ]) in the commands mapping. All you have to do to extend it is inheriting Protocols.SMTP.Server and changing this mapping to your functions (this is what the LMTP server do).
BTW if you were to changed some parts in Protocols.SMTP you might want to take a look at Procotols.ESMTP.client in Caudium CVS.
Btw, what is the syntax of the SMTP.Server module in 7.4? Some comments in the code makes me suspect that it is not used the same way as in 7.5...
The server is not available in 7.4.
/ David Gourdelier
/ Brevbäraren
pike-devel@lists.lysator.liu.se