rpost(1)


NAME

   rpost - post an article to an NNTP news server

SYNOPSIS

   rpost  [  hostname  ]  [  @filename  ]  [  -s | -S filename ] [ -e | -E
   filename ] [ -b batchfile ] [ -r rnews_file rnews_path ] [ -p prefix  ]
   [ -Q ] [ -d ] [ -U userid ] [ -P password ] [ -M ] [ -N port_number ] [
   -l phrase_file ] [ -D ] [ -T timeout ] [ -u ] [ -n ]

   [ -F perl_file ] [ -i ] [ -z ] [ -f  filter  $$o=<outfile>  filter_arg1
   ...  ]

DESCRIPTION

   Rpost  will  post  one  or  more  articles,  specified by hostname.  If
   hostname is not specified, rpost  will  use  the  environment  variable
   NNTPSERVER.   The  hostname  may optionally include the port number, in
   the form Host:Port If this form is used, any port number specified  via
   the -N option will be ignored.

Generic Options

   @filename

   This  option  tells rpost to read other options from a file in addition
   to the command line.

   -D This option  tells  rpost  to  log  various  debugging  messages  to
   "debug.suck", primarily for use by the developer.

   -e|-E filename

   These  options  will  send  all  error  messages (normally displayed on
   stderr), to an alternate file.  The lower case version, -e,  will  send
   the error messages to the compiled-in default defined in suck_config.h.
   The default is suck.errlog.  The upper case version, -E,  requires  the
   filename parameter.  All error messages will then be sent to this file.

   -i

   This option tells rpost to ignore the 201 (no posting allowed) from the
   welcoming message and to try  and  post  anyway.    Some  news  servers
   (inn-2.3.1)  send  201  no  posting  allowed  when  they  are using the
   AUTHINFO commands to verify permission to post.

   -l phrase_file

   This option tells rpost to load in an alternate phrase file, instead of
   using  the  built-in  messages.   This  allows  you to have rpost print
   phrases in another language, or to allow you to customize the  messages
   without  re-building.  See the "FOREIGN LANGUAGE PHRASES" in suck.1 for
   more details.

   -M

   This option tells rpost to send the "mode reader" command to the remote
   server.   If  you get an invalid command message from rpost immediately
   after the welcome announcement, then try this option.

   -n

   This option tells rpost to show the name of the file  as  it  is  being
   uploaded.

   -N port_number

   This  option  tells  rpost  to  use  an alternate NNRP port number when
   connecting to the host, instead of the default port number, 119.

   -s|-S filename

   These options will send all  status  messages  (normally  displayed  on
   stdout),  to  an alternate file.  The lower case version, -s, will send
   the  status  messages   to   the   compiled-in   default   defined   in
   suck_config.h.  The default is /dev/null, so no status messages will be
   displayed.   The  upper  case  version,  -S,  requires   the   filename
   parameter.  All status messages will then be sent to this file.

   -T  This  option  overrides  the compiled-in TIMEOUT value. This is how
   long rpost waits for data from the remote host before  timing  out  and
   aborting.

   -u   This  option  tells  rpost  to  send  the  AUTHINFO  USER  command
   immediately upon connect to the remote server, rather than wait  for  a
   request  for authorization.  You must supply the -U and -P options when
   you use this option.

   -U userid -P password

   These two options let you specify a userid and password, if  your  NNTP
   server requires them.

   -Q

   This  option  allows  you  to  specify  the userid and password via the
   environment variables "NNTP_USER" and "NNTP_PASS"  instead  of  on  the
   command  line.   This prevents a potential security issue where someone
   doing a ps command can see your login and password.

   -z This option tells rpost to use SSL to communicate  with  the  remote
   hosts, if SSL was compiled into rpost.

STDIN MODE

   rpost

   rpost hostname

   rpost reads one article from stdin and sends it to the NNTP server. The
   article must have a header of at least two  lines,  namely  Newsgroups:
   and  Subject:  and  a  body  (the  article). Header and body have to be
   separated by a newline.  Rpost does not change the article in any way.

   Rpost uses the POST  command  to  post  your  article,  just  like  any
   standard newsreader.  This is handy when using SLIP and PPP, since most
   providers do not allow any other  method  to  post  articles  (such  as
   nntpsend or innxmit).

BATCH MODE

   rpost hostname -b batchfile -p prefix -d

   This  batch  mode allows you to give rpost a list of articles, and have
   them all posted.

   -b batchfile

   A listing of the articles to be posted.  This  parameter  is  REQUIRED.
   This  file  contains one article per line, with the line being the path
   to the file containing the article. For example:

          -b /usr/spool/news/out.going/pixi

   IF there are any problems uploading a specific article, a "failed" file
   will  be  created.  It will be called "batchfile".fail, and contain the
   line from this batchfile for the article(s) that did  not  successfully
   upload.   This  file  can be used to re-run the failed messages through
   rpost.  NOTE: duplicate articles are NOT considered an  error  for  the
   fail file.

   -d

   If  the  upload of articles is successful, this option will cause rpost
   to
    delete the batchfile named in the -b option.

   -p prefix

   If the batchfile does not contain a full path,  but  rather  a  partial
   path,  this parameter must be specified.  This is useful when the batch
   file is generated by another program.  For example, Inn lists the  path
   in  the  out.going file relative to its base directory /usr/spool/news.
   In that case just use:

           -p /usr/spool/news

RNEWS MODE

   rpost hostname -r rnews_file rnews_path

   This option allows you to use rnews  generated  file(s)  to  post.   It
   requires two parameters.

   rnews_file  -  this  is the base name for the rnews files.  If you have
   your rnews file(s) called batch1,  batch2,  etc.,  then  this  argument
   would be "batch".

   rnews_path - this is the path to the location of the rnews files.
          -r batch /usr/tmp/rnews

   -d

   If  the  upload  of  all  the  articles  from any of the rnews files is
   successful, then this option will cause rpost to delete that particular
   rnews file.

FILTER MODES

   -f filter $$o=<outfile> filter_arg1 filter_arg2 ...

   In  many  cases,  each  article must be massaged before the remote NNTP
   will accept it.  This option,  and  the  embedded  perl  filter  option
   below,  lets you do that.  These filters do not work in STDIN mode, but
   in the batch and rnews modes from above.  Note that the -f ....  option
   must be the LAST option, as everything that follows it is passed to the
   filter, except as noted below.  There  are  three  required  parameters
   with this:

   $$o=<outfile>  -  <outfile>  is  the  name of the file produced by your
   filter that will get uploaded to the remote NNTP server.  THIS  IS  NOT
   passed  to  your filter program.  This can be specified anywhere on the
   command line AFTER the -f filter argument,  either  before  the  filter
   name, or after it.

   filter  - name of the program to call.  Whatever follows filter, EXCEPT
   for the $$o, are arguments passed to the filter.

   arg1 - The first argument  to  your  filter  program/script.   It  most
   likely  will  be $$i, which rpost fills in with the name of the article
   that needs to be cleaned up.

   arg2 ... - any additional args needed can be specified.

   Let's clarify this a bit with an example.  Some NNTP servers don't like
   to  receive  articles  with  the NNTP-Posting-Host filled in.  Create a
   short shell script to delete this from a file:


   -myscr--------------------------------------------
   #!/bin/sh

   sed -e "/^NNTP-Posting-Host/d" $1 > $2


   -end myscr----------------------------------------
   Then call rpost like this:
          rpost  localhost  -b  /usr/spool/news/out.going/pixi  -f   myscr
          \$\$o=/tmp/FILTERED_MSG \$\$i /tmp/FILTERED_MSG

   Then, before each article is uploaded, myscr is called like such:
          myscr infilename /tmp/FILTERED_MSG

   After  myscr has finished, rpost uploads the cleaned up article, stored
   in /tmp/FILTERED_MSG, to the remote NNTP server.

NOTE:

   The $$o and $$i have to be escaped, using  either  the  backslashes  as
   above,  or  with  single  quotes,  to  prevent the shell from trying to
   interpret these as variables.  Failure to escape them  will  result  in
   rpost not working!

   -F perlfilter

   This  option  allows  you to use an embedded perl filter to filter your
   articles.  In order to use this, you must edit the Makefile, and define
   the  various  PERL_ options.  It has a couple of advantages over the -f
   option above.  Because it is embedded perl,  there  are  no  forks  and
   execls()  done,  so it should be faster.  Also, you don't need to worry
   about the arguments to the program and escaping $$, etc as above.

   Rpost will, when it starts up, load in the perlfilter  file  designated
   and parse it for syntax errors.  Then, for each article to be uploaded,
   rpost  will  call  the  subroutine  "perl_rpost",  contained   in   the
   perlfilter   file.   See  sample/put.news.pl  for  a  complete  working
   example.  There are three key points you  need  to  be  aware  of  when
   creating your filter.

          1.   The   perlfilter   file  must  contain  the  line  "package
          Embed::Persistant;", so that variables in  the  perlfilter  file
          don't  clash  with  rpost  variables, and the subroutine must be
          called "perl_rpost".   This  can  be  changed  by  editting  the
          PERL_RPOST_SUB define in suck_config.h.

          2. The perl_rpost subroutine receives the input file name as its
          sole argument, and must return the full path to the location  of
          the   filtered   article  as  a  single  scalar  string  (return
          $outfile).

          3.  The  subroutine  must  explicitly  close  the  output   file
          (containing  the  filtered argument) before it returns.  This is
          because perl will  only  do  an  automatic  close  upon  program
          completion  (in  our  case  when  rpost exits), or when the file
          handle is reused (the next time the subroutine is  called).   If
          the close is not done, then more than likely, a 0 byte file will
          exist when rpost tries to post  the  article,  and  errors  will
          result.

WARNING:

   Be  very careful with what the filter program deletes from the article.
   Deleting the wrong line can have bad effects later on.  For example, do
   not  delete the MSG-ID line, as this could cause a single message to be
   posted many times, depending on the configuration of both the local and
   remote newserver.

RPOST ARGUMENT FILE

   If  you  specify  @filename  on  the command line, rpost will read from
   filename and parse it for any arguments that you wish to pass to rpost.
   You  specify  the  same arguments in this file as you do on the command
   line.  The arguments can be on one line, or spread out among more  than
   one  line.   You may also use comments.  Comments begin with '#' and go
   to the end of a line.  All command line arguments override arguments in
   the file.  One advantage to using the file instead of the command line,
   is that you don't have to escape any special characters, such as $.

          # Sample Argument file
          -b batch # batch file option
          -M   # use mode reader option

EXIT VALUES

   Rpost returns the following exit values:

          0 = success
          1 = error posting an article
          2 = unable to do NNTP authorization with the remote server.
          3 = unexpected answer to command when doing NNTP authorization.
          -1 = other fatal error.

SEE ALSO

   suck(1), testhost(1), lpost(1).

                                                                  RPOST(1)





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.