| T.R | Title | User | Personal Name
 | Date | Lines | 
|---|
| 4829.1 |  | BUSY::SLAB | Buzzword Bingo | Fri Sep 06 1996 11:24 | 8 | 
|  |     
    	There is a NOTES conference for Exchange:
    
    	CHEFS::MS-EXCHANGE
    
    	I'm sure someone over there will know the answer[s] to your
    	question[s].
    
 | 
| 4829.2 |  | CTHU22::M_MORIN | Mario Morin, Hull CSC - Canada | Fri Sep 06 1996 11:59 | 11 | 
|  | What I do is, when I'm reading a message in Exchange, <ctrl-a>
selects the whole text, then change the font to courier.  This usually
makes a non-readable mail readable.
Also Exchange users creating message should, use the courier font
if they're sending to someone on VT-based mail like ALL-IN-1,
VMSmail, etc...
Just a thought.
/Mario
 | 
| 4829.3 |  | NETCAD::MORRISON | Bob M. LKG2-A/R5 226-7570 | Mon Sep 09 1996 17:38 | 9 | 
|  |   I am more concerned about the reverse of this situation, that is, how to
convert messages that were written and sent on a PC using Exchange to a format
that, when received on a VMS system and read in mail, can be extracted to a
file and edited in a standard VMS text editor, or printed.
  I have already encountered this problem in mail sent from a PC (don't know
if the sender used Exchange). That is, I could read the mail and extract it
to a file, but could not edit it. Due to the infrequency of my getting mail
from PCs, I just lived with it. But as Exchange catches on, we are going to 
need a workaround for this.
 | 
| 4829.4 |  | CGOOA::OWONG | SKIWI in Canada (VAO) | Wed Sep 11 1996 00:05 | 18 | 
|  |     Re .3 
    
    VMSmail is relatively simplistic so if you can read the text from the
    mail prompt (i.e. mail, read/new) then there shouldn't be any problem
    doing the extract and editting whatever text arrived.
    
    I've tried lots of different files between my All-in-1, MS Exchange and
    VMSmail accounts and if its text readable at the VMS level I can
    extract and edit the file.
    
    If it shows up in MIME or UUENCODE format, I extract and move to my PC
    and then use the Transfer Professional tool to do the decoding.  if it
    arrives in /foreign format (usually binary .PPT or .DOC) I
    extract/noheader and copy to my PC.
    
    Haven't found anything I can't decode yet.
    
    	Owen.
 | 
| 4829.5 |  | tennis.ivo.dec.com::TENNIS::KAM | Kam WWSE 714/261.4133 DTN/535.4133 IVO | Wed Sep 11 1996 09:58 | 12 | 
|  | >    If it shows up in MIME or UUENCODE format, I extract and move to my PC
>    and then use the Transfer Professional tool to do the decoding.  if it
>    arrives in /foreign format (usually binary .PPT or .DOC) I
>    extract/noheader and copy to my PC.
 
    Where did you get the utility Transfer Professional tool?
    
    Also, if it arrives in /foreign format .... shouldn't that be "I
    extract/noheader/FOREIGN and copy to my PC."   
    
    	Regards,
    
 | 
| 4829.6 | base64 files are from Mac's, right? | QUOIN::BELKIN | but from that cup no more | Wed Sep 11 1996 10:23 | 6 | 
|  | I'm still looking for a way to decode "base64" files when in VMS.
I've surfed around a but with Altavista (searching for "base64 NEAR VMS")
but nothing yet.  Howabout a base64 decoder for PC ?
anyone have anything?
 - Josh
 | 
| 4829.7 |  | ATLANT::SCHMIDT | See http://atlant2.zko.dec.com/ | Wed Sep 11 1996 10:32 | 7 | 
|  | Josh:
> -< base64 files are from Mac's, right? >-
  No, not particularly. But there are tools on Macs to decode them. :-)
                                   Atlant
 | 
| 4829.8 | TECO::SYS$PUBLIC:DECODE_BASE64.* | EPS::VANDENHEUVEL | Hein | Wed Sep 11 1996 14:22 | 226 | 
|  |     
    > I'm still looking for a way to decode "base64" files when in VMS.
    
    Hmmm, an earlier pointer in this conference suggested to go
    to the LJSRV2::INTERNET_TOOLS conference. DIR/TIT=64 there 
    points to topics 856, 1486 (has source) and 2318 which points 
    to 2196.1 which reads:
------
    You can grab  DECODE_BASE64.EXE from TECO::SYS$PUBLIC:. 
    
    This decodes BASE64 encoding. (It's not the same as UUENCODE).  
    Define a VMS synbol as BASE64 :== $dev:[dir]DEVODE_BASE64
    where dev:[dir] is where you've place the image.
    
      and then issue the command:
    
      BASE64 input_file TEST.DOC
    
      where input_file is the name of the file you've saved to disk. 
    I believe that you will have to strip out the header information 
    first before you try this.
------
    Worked for me, but you do have to strip and is does not deal with
    multiple attachments in one go. (The .C source is there also, so I 
    guess I should not bitch but just fix those details :-)
    
    That same 2196 topic also discusses transfer-pro thingies.
    
    You can grab a VAX image copy from EPS::UTL:DECODE_BASE64.EXE
    
    I'll include yet-an-other base64 encoder/decoder source I  found
    in the VMS news group a while back.
    
    Regards,
    		Hein.
    
Article: 139246
From: [email protected] (Reece R. Pollack)
Newsgroups: comp.os.vms
Subject: RE: BASE64-Deocoder for VMS wanted
Date: 1 Feb 1996 02:06:25 GMT
Organization: Attachmate Internet Products Group
Sender: [email protected] (Reece R. Pollack)
 
 
In Article <[email protected]> [email protected] (Joerg Knappen) writes:
|>There is now a popular Mail programm spitting around base-64 encoded files
|>instead of uuencoded ones. Is there a base-64 decoder for VMS? Where?
 
I wrote simple Base64 encoders and decoders in about an hour; the sources
follow my signature. They should compile using any standard C compiler on
almost any machine, but they don't handle such esoteric things as CR/LF
conversions or RMS attributes.
 
Feel free to hack on these, but please post any enhancements you develop.
These come with no warranty, and I'll gleefully ignore all complaints!
 
-- 
Reece R. Pollack
Senior Software Engineer
The Wollongong Group, Inc.
 
 
------------------- Begin b64decode.c
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
 
int decode_b64char( int ch )
{
    int		sextet;
 
    if( ('A' <= ch) && (ch <= 'Z') )
	sextet = ch - 'A';
    else if( ('a' <= ch) && (ch <= 'z') )
	sextet = (ch - 'a') + 26;
    else if( ('0' <= ch) && (ch <= '9') )
	sextet = (ch - '0') + 52;
    else if( ch == '+' )
	sextet = 62;
    else if( ch == '/' )
	sextet = 63;
    else {
	fprintf( stderr, (isprint(ch) ? "Illegal base64 character '%c'\n" :
					"Illegal base64 character 0x%02x\n"),
		 ch );
	exit( EXIT_FAILURE );
    }
 
    return( sextet );
}
 
 
main( int argc, char *argv[] )
{
    FILE	*fin;
    FILE	*fout;
    int		flushing = 0;
    int		temp = 0;
    int		bits = 0;
    int		ch;
 
    if( argc < 2 ) {
	fprintf( stderr, "Usage: b64decode <infile> [outfile]\n" );
	exit( EXIT_SUCCESS );
    }
 
    fin = fopen( argv[1], "r" );
    if( fin == NULL ) {
	perror( "openin" );
	exit( EXIT_FAILURE );
    }
 
    if( argc < 3 )
	fout = stdout;
    else {
	fout = fopen( argv[2], "wb" );
	if( fout == NULL ) {
	    perror( "openout" );
	    fclose( fin );
	    exit( EXIT_FAILURE );
	}
    }
 
    while( (ch = fgetc( fin )) != EOF ) {
	if( !isspace(ch) ) {
	    if( flushing ) {
		if( ch != '=' ) {
		    fprintf( stderr, "Illegal character in EOF padding\n" );
		    exit( EXIT_FAILURE );
		}
	    }
	    else {
		if( ch == '=' )
		    flushing = 1;
		else {
		    temp <<= 6;
		    temp |= decode_b64char( ch );
		    bits += 6;
		    if( bits >= 8 ) {
			bits -= 8;
			fputc( (0xff & (temp >> bits)), fout );
		    }
		}
	    }
	}
    }
 
    fclose( fout );
    fclose( fin );
}
------------------- End b64decode.c
 
------------------- Begin b64encode.c
#include <stdlib.h>
#include <stdio.h>
 
#define	MAXLINELEN	76
 
static const char	b64chars[] = 
    "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
/*   0000000000000000111111111111111122222222222222223333333333333333	*/
/*   0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF	*/
 
main( int argc, char *argv[] )
{
    FILE	*fin;
    FILE	*fout;
    int		octet;
    int		temp = 0;
    int		bits = 0;
    int		linelen = 0;
 
    if( argc < 2 ) {
	fprintf( stderr, "Usage: b64encode <infile> [outfile]\n" );
	exit( EXIT_SUCCESS );
    }
 
    fin = fopen( argv[1], "rb" );
    if( fin == NULL ) {
	perror( "openin" );
	exit( EXIT_FAILURE );
    }
 
    if( argc < 3 )
	fout = stdout;
    else {
	fout = fopen( argv[2], "w" );
	if( fout == NULL ) {
	    perror( "openout" );
	    fclose( fin );
	    exit( EXIT_FAILURE );
	}
    }
 
    while( (octet = fgetc( fin )) != EOF ) {
	temp <<= 8;
	temp |= 0xff & octet;
	bits += 8;
	while( bits >= 6 ) {
	    bits -= 6;
	    fputc( b64chars[ 0x3f & (temp >> bits) ], fout );
	    if( ++linelen >= MAXLINELEN ) {
		fputc( '\n', fout );
		linelen = 0;
	    }
	}
    }
    if( bits > 0 ) {
	temp <<= 6 - bits;
	fputc( b64chars[ 0x3f & temp ], fout );
	if( bits == 4 )
	    fputc( '=', fout );
	else if( bits == 2 ) {
	    fputc( '=', fout );
	    fputc( '=', fout );
	}
	fputc( '\n', fout );
    }
 
    fclose( fout );
    fclose( fin );
    exit( EXIT_SUCCESS );
}
------------------- End b64encode.c
    
 | 
| 4829.9 | Try Information Transfer Professional on PC | LESREG::CROSS | John Cross MRO1-2/Z24 dtn297-4897 | Wed Sep 11 1996 14:31 | 12 | 
|  |     
    I would suggest Information Transfer Professional which can be 
    pulled from the web as XFERP110.ZIP .  You can "unzip" this utility
    and then run setup.exe to install xferpro.exe.  It is shareware
    from
    
       Sabasoft, Inc           email: [email protected]
       924 Bayhill Ave           cost stated as: $10 register new customer
       Naperville, IL 60565                      $ 6 manual and disk
                                                 $ 2 shipping USA
             
    
 | 
| 4829.10 | guilty as charged | QUOIN::BELKIN | but from that cup no more | Thu Sep 12 1996 09:43 | 6 |