diff --git a/README.md b/README.md index 01b7627..2531413 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,9 @@ Usage ----- ```sh Usage: smtp2http [-v|--verbose] [-s|--silent|-q|--quiet] - [-T|--tls=] ENDPOINT + [-T|--tls=] [[-H|--header=
], ...] ENDPOINT + -H --header=
HTTP header to send with requests -q --quiet Do not log to STDERR -s --silent Alias for --quiet -T --tls= colon-delimited list of cert files @@ -89,4 +90,4 @@ openssl pkcs12 -export \ -out example.com.pfx \ -in example.com.crt -inkey example.com.key \ -certfile example.com-ca.crt -``` \ No newline at end of file +``` diff --git a/package.json b/package.json index 0a5fe84..95fab39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "smtp2http", - "version": "1.0.0", + "version": "1.1.0", "description": "SMTP to HTTP gateway", "bin": { "smtp2http": "./smtp2http.js" diff --git a/smtp2http.js b/smtp2http.js index f0e84d0..d09c4c2 100644 --- a/smtp2http.js +++ b/smtp2http.js @@ -14,11 +14,18 @@ squabble.shortOpts().longOpts().stopper() .option("-T", "--tls") .flag("-s", "-q", "--silent", "--quiet") .flag("-v", "--verbose") + .list("-H", "--header") .required("ENDPOINT"); -// parse arguments +// parse and apply arguments args = squabble.parse(); serverOpts.endpoint = args.named.ENDPOINT; +serverOpts.headers = {}; +args.named["--header"].forEach(function(headerLine) { + var name = headerLine.split(":")[0]; + serverOpts.headers[name] = serverOpts.headers[name] || []; + serverOpts.headers[name].push(headerLine.substr(name.length+1).trim()); +}); // configure console output if (args.named["--quiet"]) { @@ -64,7 +71,8 @@ smtp.createServer(serverOpts, function(req) { stream.pipe(new MailParser().on("end", function(email) { http.post({ url: serverOpts.endpoint, - json: email + json: email, + headers: serverOpts.headers }, function(err, res, body) { var msg;