Skip to content

opendkim.sig_getdomain()

Christopher Mooney edited this page Feb 12, 2018 · 4 revisions

DESCRIPTION

This call retrieves the domain from the signature ultimately used to verify a message. This can be called after opendkim.eoh(). This function uses the signature handle found by opendkim.get_signature() to pull the domain from. Internally, this function calls opendkim.get_signature(), so there is no need to explicitly call it yourself.

ARGUMENTS

Type: undefined

RETURN VALUES

  • throws an error if
    • The function was called before opendkim.eoh() and thus opendkim.verify()
  • returns the identity string on success, or empty string if there isn't one.

NOTES

  • throws an error if there is simply no signature on the message.

EXAMPLE (async/await)

const OpenDKIM = require('node-opendkim');                                                               
                                                                                                         
async function verify(message) {                                                                         
  var opendkim = new OpenDKIM();                                                                         
                                                                                                         
  try {                                                                                                  
    await opendkim.verify({id: undefined});                                                              
    await opendkim.chunk({                                                                               
      message: message,                                                                                  
      length: message.length                                                                             
    });                                                                                                  
    await opendkim.chunk_end();                                                                          
    var domain = opendkim.sig_getdomain();                                                               
    console.log('domain: ' + domain);                                                                    
  } catch (err) {                                                                                        
    console.log(opendkim.sig_geterrorstr(opendkim.sig_geterror()));                                     
    console.log(err);                                                                                    
  }                                                                                                      
}                                                                                                        

EXAMPLE (sync)

const OpenDKIM = require('node-opendkim');                                                               
                                                                                                         
function verify_sync(message) {                                                                          
  var opendkim = new OpenDKIM();                                                                         
                                                                                                         
  try {                                                                                                  
    opendkim.verify_sync({id: undefined});                                                               
    opendkim.chunk_sync({                                                                                
      message: message,                                                                                  
      length: message.length                                                                             
    });                                                                                                  
    opendkim.chunk_end_sync();                                                                           
    var domain = opendkim.sig_getdomain();                                                               
    console.log('domain: ' + domain);                                                                    
  } catch (err) {                                                                                        
    console.log(opendkim.sig_geterrorstr(opendkim.sig_geterror()));                                     
    console.log(err);                                                                                    
  }                                                                                                      
}                                                                                                        

EXAMPLE (errback)

const OpenDKIM = require('node-opendkim');                                                               
                                                                                                         
function verify(opendkim, message, callback) {                                                                                                    
  opendkim.verify({id: undefined}, function (err, result) {                                              
    if (err) {                                                                                           
      return callback(err, result);                                                                      
    }                                                                                                    
                                                                                                         
    var options = {                                                                                      
      message: message,                                                                                  
      length: message.length                                                                             
    };                                                                                                   
                                                                                                         
    opendkim.chunk(options, function (err, result) {                                                     
      if (err) {                                                                                         
        return callback(err, result);                                                                    
      }                                                                                                  
                                                                                                         
      opendkim.chunk_end(function (err, result) {                                                        
        if (err) {                                                                                       
          return callback(err, result);                                                                  
        }                                                                                                
                                                                                                         
        var domain = opendkim.sig_getdomain();                                                           
                                                                                                         
        return callback(err, domain);                                                                    
      });                                                                                                
    });                                                                                                  
  });                                                                                                    
}                                                                                                        

var opendkim = new OpenDKIM();

verify(opendkim, message, function (err, domain) {                                                                 
  if (err) {                                                                                             
    return console.log(opendkim.sig_geterrorstr(opendkim.sig_geterror()));                                                                                             
  }                                                                                                      
                                                                                                         
  // success                                                                                             
  console.log('domain: ' + domain);                                                                      
});