Skip to content

ktkmitani/node-milter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

node-milter

Example

var nodemilter = require('node-milter');

var milter = nodemilter.createMilter({
  name: 'test',
  flags: 0
});

milter.setCallback('negotiate', function(ctx, f1, f2, f3, f4, callback) {
  callback(nodemilter.SMFIS_ALL_OPTS);
});

milter.setCallback('envfrom', function(ctx, argv, callback) {
  callback(nodemilter.SMFIS_CONTINUE);
});

milter.listen(10025, function() {
  console.log('milter started on port 10025');
});

Constants

version

  • SMFI_VERSION

return codes

  • MI_SUCCESS
  • MI_FAILURE

callbacks return codes

  • SMFIS_CONTINUE
  • SMFIS_REJECT
  • SMFIS_DISCARD
  • SMFIS_ACCEPT
  • SMFIS_TEMPFAIL
  • SMFIS_ALL_OPTS

options flag

  • SMFIF_ADDHDRS
  • SMFIF_CHGHDRS
  • SMFIF_CHGBODY
  • SMFIF_ADDPRCT
  • SMFIF_ADDRCPT_PAR
  • SMFIF_DELRCPT
  • SMFIF_QUARANTINE
  • SMFIF_CHGFROM
  • SMFIF_SETSYMLIST

protocol stage

  • SMFIM_CONNECT
  • SMFIM_HELO
  • SMFIM_ENVFROM
  • SMFIM_ENVRCPT
  • SMFIM_DATA
  • SMFIM_EOM
  • SMFIM_EOH

Contral Functions

new nodemilter.createMilter([options])

  • options Object
  • name String Default='Unknown'
  • version Number Default=SMFI_VERSION
  • flag Number Default=0

milter.listen(arguments)

arguments passthrough net.Server.listen

Callbacks

milter.setCallback(name, callback)

  • name String
  • callback Function
name callback
negotiate negotiate(ctx, f1, f2, f3, f4, callback)
connect connect(ctx, hostname, address, port, callback)
helo helo(ctx, helohost, callback)
envfrom envfrom(ctx, argv, callback)
envrcpt envrcpt(ctx, argv, callback)
data data(ctx, callback)
header header(ctx, field, value, callback)
eoh eoh(ctx, callback)
body body(ctx, data, callback)
eom eom(ctx, callback)
close close(ctx, callback)
abort abort(ctx, callback)
unknown unknown(ctx, data, callback)

Callback Definitions

#### negoticate(ctx, f1, f2, f3, f4, callback) * __ctx__ Object * __f1__ Number * __f2__ Number * __f3__ Number * __f4__ Number * __callback__ Function #### connect(ctx, hostname, address, port, callback) * __ctx__ Object * __hostname__ String * __address__ String * __port__ Number * __callback__ Function #### helo(ctx, helohost, callback) * __ctx__ Object * __helohost__ String * __callback__ Function #### envfrom(ctx, argv, callback) * __ctx__ Object * __argv__ Array(String) * __callback__ Function #### envrcpt(ctx, argv, callback) * __ctx__ Object * __argv__ Array(String) * __callback__ Function #### data(ctx, callback) * __ctx__ Object * __callback__ Function #### header(ctx, field, value, callback) * __ctx__ Object * __field__ String * __value__ String * __callback__ Function #### eoh(ctx, callback) * __ctx__ Object * __callback__ Function #### body(ctx, data, callback) * __ctx__ Object * __data__ Buffer * __callback__ Function #### eom(ctx, callback) * __ctx__ Object * __callback__ Function #### close(ctx, callback) * __ctx__ Object * __callback__ Function #### abort(ctx, callback) * __ctx__ Object * __callback__ Function #### unknown(ctx, data, callback) * __ctx__ Object * __data__ Buffer * __callback__ Function

milter.getpriv(ctx)

  • ctx Object

milter.setprive(ctx, data)

  • ctx Object
  • data

milter.getsymval(ctx, symname)

  • ctx Object
  • symname String

milter.setreply(ctx, rcode, xcode)

  • ctx Object
  • rcode String
  • xcode String

milter.setmlreply(ctx, rcode, xcode...)

  • ctx Object
  • rcode String
  • xcode String

Message Modification Functions

milter.addheader(ctx, field, value, callback)

  • ctx Object
  • field String
  • value String
  • callback Function

milter.chgheader(ctx, field, index, value, callback)

  • ctx Object
  • field String
  • index Number
  • value String
  • callback Function

milter.insheader(ctx, index, field, value, callback)

  • ctx Object
  • index Number
  • field String
  • value String
  • callback Function

milter.chgfrom(ctx, from[, args], callback)

  • ctx Object
  • from String
  • args String
  • callback Function

milter.addrcpt(ctx, rcpt, callback)

  • ctx Object
  • rcpt String
  • callback Function

milter.addrcpt_par(ctx, rcpt[, args], callback)

  • ctx Object
  • rcpt String
  • args String
  • callback Function

milter.delrcpt(ctx, rcpt, callback)

  • ctx Object
  • rcpt String
  • callback Function

milter.replacebody(ctx, body, callback)

  • ctx Object
  • body String | Buffer | Readable
  • callback Function

Other Message Handling Functions

milter.progress(ctx, callback)

  • ctx Object
  • callback Function

milter.quarantine(ctx, reason, callback)

  • ctx Object
  • reason String
  • callback Function

Miscellaneous

milter.setsymlist(ctx, where, macros)

  • ctx Object
  • where Number
  • macros Array(String)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published