Date: Mon, 18 May 1998 22:57:48 -0400
From: Jonathan Shaw <jls4 at cwru dot edu>
Subject: Re: [AS-Dev] Maybe a dumb question

>>>Because I have Filemaker setup to send the initial email to
>>>EIMS/Autoshare when a record is created, this stops the problem
>>>before the mail is ever sent to EIMS/Autoshare.
>>
>>I don't quite understand this. What am I missing?
>
>With FMP 4 web companion you can set it up to  send email when a record
>is added via a web form. I have the form setup to send the email to the
>EIMS account when the form is successfully processed and the record
>added, using the "from" address that the person enters in the form. That
>then kicks in the whole EIMS/Autoshare mailback thing to confirm that the
>"from" address was actually correct, and when the mailback is
>successfully completed a record is added to a related "confirmed"
>database. There is no possible way to stop someone from forging an email
>address in the form the first time (and producing an unwanted mailback to
>that address), but the address is never in my confirmed database so I
>don't send them any more mail. As long as I leave that "dead" record in
>my main database Filemaker will not add a duplicate (the  unique
>validation option on the address field) and  thus will not send mail to
>trigger another mailback.

This is really cool, and I think FileMaker Pro's scripting is easier than
even AppleScript because you can do most things with the mouse to write the
script. There are not too many options, but the ones you need are there,
and they are really well organized. Plus, a FMP script can contain/run an
AppleScript script.

OK, I was just reading Eric's response above, again! I think I'm finally
understanding what you meant when you said it was storing the dead records.
You actually have two databases, and with your new setup, a valid,
subscribed address is stored in both databases. This is because it never
gets removed from the first one. I think this may be unnecessary. You could
actually just add the record to your main, subscriber database in the first
place. But, make a new field called "Active" (for example), which is set T
if the mailback confirmation was received and the subscription was started
in AutoShare, and F until then (F is the default value for that field, for
example). This field only requires a few extra bytes to store, and you can
always find active subscribers by performing a find for T in Active. Of
course, your solution may be better as you are better aware of the other
uses of your databases.

-Jonathan {;-)
Visit <http://b62968.cwru.edu/> for a good laugh.

There are 3 kinds of people: Those who make things happen, those who watch
things happen and those who wonder what happened.



Subject: Re: [AS-Dev] Maybe a dumb question
Date: Mon, 18 May 1998 23:31:20 -0400
From: Eric Mings <elm at ao dot net>

> But, make a new field called "Active" (for example), which is set T
>if the mailback confirmation was received and the subscription was started
>in AutoShare, and F until then (F is the default value for that field, for
>example). This field only requires a few extra bytes to store, and you can
>always find active subscribers by performing a find for T in Active. Of
>course, your solution may be better as you are better aware of the other
>uses of your databases.

Is there an easy way that an Autoshare processor script could find and 
change the value in a field on a particular record based upon matching 
the from address? I originally just had it create a record in the related 
datbase because that was easier to accomplish with the processor 
applescript. It would be helpful not to have to run extra related 
databases if possible. I could post my processor script if that would be 
helpful. 

Date: Tue, 19 May 1998 00:12:01 -0400
From: Jonathan Shaw <jls4 at cwru dot edu>
Subject: Re: [AS-Dev] Maybe a dumb question

>> But, make a new field called "Active" (for example), which is set T
>>if the mailback confirmation was received and the subscription was started
>>in AutoShare, and F until then (F is the default value for that field, for
>>example). This field only requires a few extra bytes to store, and you can
>>always find active subscribers by performing a find for T in Active. Of
>>course, your solution may be better as you are better aware of the other
>>uses of your databases.
>
>Is there an easy way that an Autoshare processor script could find and
>change the value in a field on a particular record based upon matching
>the from address? I originally just had it create a record in the related
>datbase because that was easier to accomplish with the processor
>applescript. It would be helpful not to have to run extra related
>databases if possible. I could post my processor script if that would be
>helpful.

To be honest, I don't have access to FileMaker Pro or AutoShare at the
moment. And, I've never _really_ written an AutoShare script--I've just
modified a couple already written, pretty basic ones. But, I suspect this
task is not too daunting. I think there is a hook in AutoShare that allows
a script to be run upon subscription. The script should be able to tell
FileMaker Pro to select the record matching the key "e-mail address" and
set it's "Active" field to "T". Since the field "e-mail address" is set to
require unique values, you can depend on a selection for a particular
address to always return either 1 or no records. If it returns no records,
something wrong must have happened--the record was lost, never created, or
something like that. If the record is found, then FileMaker Pro's "replace"
option (which is undoubtedly available through AppleScript, too) should
allow you to set the Active field's value to "T".

-Jonathan {;-)
Visit <http://b62968.cwru.edu/> for a good laugh.

There are 3 kinds of people: Those who make things happen, those who watch
things happen and those who wonder what happened.



Date: Mon, 18 May 1998 21:53:54 -0700
From: Mikael Hansen <meh at dnai dot com>
Subject: Re: [AS-Dev] Maybe a dumb question

At 00:12 -0400 19/5/1998, Jonathan Shaw wrote:

>But, I suspect this task is not too daunting. I think there is a hook in
>AutoShare that allows a script to be run upon subscription.

There is.

>The script should be able to tell FileMaker Pro to select the record
>matching the key "e-mail address" and set it's "Active" field to "T".

That should certainly be possible.

Subject: Re: [AS-Dev] Maybe a dumb question
Date: Wed, 20 May 1998 20:31:44 -0400
From: Eric Mings <elm at ao dot net>

>>The script should be able to tell FileMaker Pro to select the record
>>matching the key "e-mail address" and set it's "Active" field to "T".
>
>That should certainly be possible.

Details please! Is it possible now?


Regards,

Eric Mings Ph.D.


Subject: Re: [AS-Dev] Maybe a dumb question
Date: Wed, 20 May 1998 22:32:57 -0400
From: Eric Mings <elm at ao dot net>

 >>>The script should be able to tell FileMaker Pro to select the record
>>>matching the key "e-mail address" and set it's "Active" field to "T".
>>
>>That should certainly be possible.
>

I had sent a message asking for details if this is possible. The more I 
think about my particular implementation of the Filemaker/EIMS/Autshare 
solution, the more important this ability becomes. Unfortunately, my 
applescripting ability is usually limited to modifying scripts to suit my 
needs. My current after processing script (part of a mailback service) is 
as follows:


on idle
	return 300
end idle

on «event AuAPaUAP» (aList)
	set kFolderPath to item 1 of aList
	set kFileName to item 2 of aList
	set kRFCSubject to item 7 of aList
	set kList to item 9 of aList
	set kRFCFromAddress to item 12 of aList
	set kRFCToAddress to item 13 of aList
	
	set myFilePath to kFolderPath & kFileName -- message file in temp folder
	
	tell application "Finder"
		if length of kList = 0 then -- not a list contribution
			
			
			
			if kRFCFromAddress does not start with "autoshare" then -- not ls
				if kRFCFromAddress begins with "DOLMembership" then -- checking user 
name
					if kRFCSubject is "Welcome to Membership!" then
						tell application "FileMaker Pro"
							activate
							open alias "Macintosh HD:FileMaker Pro 4.0 
Folder:MyStuff:EmailAddresses"
							create new record with data {kRFCToAddress} -- 1st cell
						end tell
					end if
				end if
				
				if kRFCFromAddress begins with "DOLRemovals" then -- checking user 
name
					if kRFCSubject is "Membership Resigned" then
						tell application "FileMaker Pro"
							activate
							open alias "Macintosh HD:FileMaker Pro 4.0 
Folder:MyStuff:RemoveAddresses"
							create new record with data {kRFCToAddress} -- 1st cell
						end tell
					end if
				end if
			end if
			
		end if
	end tell
end «event AuAPaUAP»


Let's assume I want to keep the DOLMembership aspect intact, but would 
rather the DOLRemovals part actually changed the value of a field 
(memberstatus) in my main database (Membership) from "active" to 
"resigned" rather than adding a record to a  "RemoveAddresses" database. 
Can this script be easily modified to find the record with the correct 
email address and modify it accordingly? Thanks!


Regards,

Eric Mings Ph.D.


Date: Thu, 21 May 1998 01:03:35 -0400
From: Jonathan Shaw <jls4 at cwru dot edu>
Subject: Re: [AS-Dev] Maybe a dumb question

>>>The script should be able to tell FileMaker Pro to select the record
>>>matching the key "e-mail address" and set it's "Active" field to "T".
>>
>>That should certainly be possible.
>
>Details please! Is it possible now?

I do not have FileMaker Pro at home... I'm assuming you would want this
script to run when AutoShare signals that the user has been fully
subscribed by executing your script for you. The script is probably an
AppleScript, and I don't know AppleScript much at all. But, assuming
FileMaker Pro's AppleScript dictionary looks very similar to its
proprietary one (the script editor you get when you are working inside of
FMP itself), then the following code shouldn't be too difficult to write in
AppleScript. Alternatively, tell the AppleScript to run the following FMP
script (that you've previously entered into the database).
The latter will likely be much faster, anyway.

// BEGINNING of script, command names and syntax are how I remember them,
// so they may not be right. But, they should be close, and the code is
// pretty clear.

Enter Find Mode, don't restore requests, don't pause
Set Field <Address> to <submittedAddress>

// <submittedAddress>:
// This is the address submitted from AutoShare; the address of the
// subscriber... I don't know what you write in AppleScript for this
// (Mikael?)

Perform Find
Go To record 1 // you may not need to do this, try it without this first.
Set Field <Active> to "T"

// END of script

This script doesn't do any error checking. The only error I can think of
that would occur is that the e-mail address doesn't match any of your
records in your database. This _shouldn't_ happen, but you never no what
might go awry until you test it, or someone else finds the problem. :)

-Jonathan {;-)
Visit <http://b62968.cwru.edu/> for a good laugh.

There are 3 kinds of people: Those who make things happen, those who watch
things happen and those who wonder what happened.



Date: Thu, 21 May 1998 01:18:11 -0400
From: Jonathan Shaw <jls4 at cwru dot edu>
Subject: Re: [AS-Dev] Maybe a dumb question

I'm a little confused in the script. Why are you adding the address of a
user who has unsubscribed to the removals database? Is it possible that a
user unsubscribes, but then later decides to subscribe? Wouldn't this
restrict that ability?

>Let's assume I want to keep the DOLMembership aspect intact, but would
>rather the DOLRemovals part actually changed the value of a field
>(memberstatus) in my main database (Membership) from "active" to
>"resigned" rather than adding a record to a  "RemoveAddresses" database.
>Can this script be easily modified to find the record with the correct
>email address and modify it accordingly? Thanks!

Yes, I think you can do this. Assuming that when a user fills out the web
form to subscribe, that the process following this includes adding a record
to the subscribers database and sets the "memberstatus" field to "inactive"
as a default... then when the subscription is confimed upon AutoShare's
receipt of the correct confirmation code, another script (the one you wrote
and posted) would find the corresponding record and set it's "memberstatus"
to "active". This can be done by including the commands I sent in the
preceding post.

When a user unsubscribes, their memberstatus changes from active to
"resigned", or you can delete their record. Personally, I'd delete the
record, but depending on your particular use, it may be more useful for you
to keep the record and change the status.

-Jonathan {;-)
Visit <http://b62968.cwru.edu/> for a good laugh.

There are 3 kinds of people: Those who make things happen, those who watch
things happen and those who wonder what happened.



Date: Wed, 20 May 1998 23:27:42 -0700
From: Mikael Hansen <meh at dnai dot com>
Subject: Re: [AS-Dev] Maybe a dumb question

There are several little things you may want to do first. The first is to
put all strings into variables at the script's beginning.

property ePath: "Macintosh HD:FileMaker Pro 4.0 Folder:MyStuff:EmailAddresses"

and then use ePath later in the script. This comes in handy when you want
to change to another path or want to use it more than once in the script.

And speaking of this path, you probably don't want to have your own data
inside a subfolder of the software folder. If you toss the software one
day, you also might risk tossing your data! Also, keep your folder names
short for readability.

I don't think the line

if kRFCFromAddress does not start with "autoshare" then

is necessary, as kRFCFromAddress is also checked to see if it begins with
something else. Furthermore, if you had to, you would want to say
"autoshare@" rather than "autoshare", because what if you had
"autoshare-blah"?

>Let's assume I want to keep the DOLMembership aspect intact, but would
>rather the DOLRemovals part actually changed the value of a field
>(memberstatus) in my main database (Membership) from "active" to
>"resigned" rather than adding a record to a  "RemoveAddresses" database.
>Can this script be easily modified to find the record with the correct
>email address and modify it accordingly? Thanks!

You can change a field in a record by doing something like

set Cell 2 of (first Record whose Cell 1 is kRFCToAddress) to "active"

Here's another advice that I have learned the hard way: always test the
core portion of the script code with a regular compiled script first, as it
is easier picking up errors this way. When a script application comes
across an error, it just ignores the rest; a compiled script on the other
hand stops and tells you where the error is and so forth.

Subject: Re: [AS-Dev] Maybe a dumb question
Date: Tue, 26 May 1998 22:17:43 -0400
From: Eric Mings <elm at ao dot net>

Mikael wrote:

>You can change a field in a record by doing something like
>
>set Cell 2 of (first Record whose Cell 1 is kRFCToAddress) to "active"

OK, it took me a while to  ferret out which cells were the correct ones 
to plug into that line of code (too bad FMP doesn't have a "show cell 
numbers" ability). It now works quite well! 

My only question is how well/fast this will work once I have a large 
number of records in my database? It must find and change the appropriate 
record. Will I need to allocate more memory to the afterprocessing script 
as the number of records searched goes up? Any thoughts?

Regards,

Eric Mings Ph.D.

########################################################################
Windows were shattered around the world when, with a tail wag and an ear 
scratch, Moof spoke in perfect English:

"News of my death has been greatly exaggerated!"
########################################################################


Date: Wed, 27 May 1998 00:57:53 -0400
From: Jonathan Shaw <jls4 at cwru dot edu>
Subject: Re: [AS-Dev] Maybe a dumb question

>My only question is how well/fast this will work once I have a large
>number of records in my database? It must find and change the appropriate
>record. Will I need to allocate more memory to the afterprocessing script
>as the number of records searched goes up? Any thoughts?

Think of your web-driven script as a client user of your database,
accessing information in it from some other machine. All the server can do
is store and retrieve records. But, part of the retrieving record task
includes finding or searching. So, the work of locating the record to
change is a task for FileMaker Pro and not for your script. You should not
need to allocate more memory to it or worry about its speed as far as the #
of records is concerned. FileMaker Pro is responsible for this, and should
work quite quickly.

One thing you may wish to do is check that the fields you search on (e-mail
address, maybe others, too) are being indexed by FMP. In the field
definitions, there is an option to have them indexed--make sure it is on.
This will speed up searches significantly.

-Jonathan {;-)
Visit <http://b62968.cwru.edu/> for a good laugh.

There are 3 kinds of people: Those who make things happen, those who watch
things happen and those who wonder what happened.



Subject: Pushing the envelope again.
Date: Thu, 4 Jun 1998 22:31:04 -0400
From: Eric Mings <elm at ao dot net>


Since autoshare has managed to do everything I have asked thus far, I 
figured it was time to try pushing the envelope again. ;-)

In our last exciting episode, we successfully integrated autoshare with 
filemaker to automatically update the membership status in my database as 
a result of mail sent to my autoshare mailback accounts.

Now for the new stuff. Ideally I would like to avoid use of some other 
products, instead using autoshare to manage my mailouts to members in my  
database. Obviously I'll  settle for what is possible.  Here is what I 
would  like (although not necessarily possible)

1. I would like to have an announcement subscriber list which is created 
when I export a subset of the addresses in my mailing list. I could then 
send a message to autoshare and have it mail to all on the list.  I would 
like this list to be overwritten each time I do another search and 
export. 

2. The first tricky part. I would like to have tokens in the message that 
could be replaced by items in my exported file (a la Emerge). Example:

EmailAddress FirstName LastName MemeberID
elm at ao dot net   Eric      Mings    EM1039   

The body of a message might read:

-----------------
<FirstName> <LastName>
<MemberID>
<EmailAddress>

This message says blah blah blah blah.......
------------------

3. The next tricky part. I would like the bounce management to be able to 
set a field in my database to a value (e.g badaddress) when hard bounces 
are received or bounce threshold is met.

Oh yeah, and did I mention I would like autoshare to print currency so I 
never had to work in order to pay bills again ;-)





Regards,

Eric Mings Ph.D.


Date: Tue, 9 Jun 1998 01:30:41 -0400
From: Jonathan Shaw <jls4 at cwru dot edu>
Subject: Re: [AS-Dev] Pushing the envelope again.

>1. I would like to have an announcement subscriber list which is created
>when I export a subset of the addresses in my mailing list. I could then
>send a message to autoshare and have it mail to all on the list.  I would
>like this list to be overwritten each time I do another search and
>export.

I believe this can be accomplished by creating an annoucement list whose
moderator is you, so that only you can post. Set the defaults for
subscribers as you wish... then have FileMaker Pro export the e-mail
addresses to the mailing list file in AutoShare's list server folder. Then
send your announcement to the list.

>2. The first tricky part. I would like to have tokens in the message that
>could be replaced by items in my exported file (a la Emerge). Example:
>
>EmailAddress FirstName LastName MemeberID
>elm at ao dot net   Eric      Mings    EM1039
>
>The body of a message might read:
>
>-----------------
><FirstName> <LastName>
><MemberID>
><EmailAddress>
>
>This message says blah blah blah blah.......
>------------------

This sounds like a job for FileMaker Pro 3.0 or 4.0... Use a FMP script
that goes to each record in the found set successively, while sending an
e-mail message to the address stored in the EmailAddress field, with the
body of the letter as you wish, including field values where necessary.

>3. The next tricky part. I would like the bounce management to be able to
>set a field in my database to a value (e.g badaddress) when hard bounces
>are received or bounce threshold is met.

This does sound tricky. I don't remember how much FMP lets you do through
it's e-mail option... but this might work: use mail headers that identify
the e-mail as being sent through the AutoShare list, even though you are
really sending the mail through FMP.

When the mail bounces, it should go to AutoShare's bounce handler (if the
mail headers correctly specify your bounce module address). If this is
possible, use an AutoShare script hook for when the bounce module
unsubscribes a user to set your badaddress field in the FMP database...
This will require that you update the AutoShare list file discussed in #1
each time you post to it (not a big deal, I think).

Note that this really depends on whether you can adjust the mail headers
through FMP. I can't remember if this is an option in it. If it isn't,
you'll need to ask AutoShare to send the mail for you (using AppleScript,
for example), though this will be very slow. I'm not even sure if you can
adjust the headers through AutoShare's send mail function... Mikael? All of
this is still a bunch of trickery, though. But, it might just work.

>Oh yeah, and did I mention I would like autoshare to print currency so I
>never had to work in order to pay bills again ;-)

I've heard that this will be the major new feature for AutoShare 3.0,
code-named "Kitchen Sink."

-Jonathan {;-)
Visit <http://b62968.cwru.edu/> for a good laugh.

There are 3 kinds of people: Those who make things happen, those who watch
things happen and those who wonder what happened.



Date: Mon, 15 Jun 1998 00:09:43 -0700
From: Mikael Hansen <meh at dnai dot com>
Subject: Re: [AS-Dev] Pushing the envelope again.

At 01:30 -0400 9/6/1998, Jonathan Shaw wrote:

>I'm not even sure if you can adjust the headers through AutoShare's send
>mail function... Mikael?

There's an option for adding the Precedence header, but that's it.

>>Oh yeah, and did I mention I would like autoshare to print currency so I
>>never had to work in order to pay bills again ;-)
>
>I've heard that this will be the major new feature for AutoShare 3.0,
>code-named "Kitchen Sink."

Now, how did you know that? :-) I have just returned from a one week
driving trip to Nevada, Arizona and Southern California. Pushed the pedal
to the metal for 2600 miles and slept pretty well at night, you can
imagine. I was somehow still able to enjoy all the visited places, follow
the Bulls-Jazz ball games - and also read a 464 page brick entitled Apple:
The Inside Story of Intrigue, Egomania, and Business Blunders by Jim
Carlton. He referred to several Apple projects as over time coming to
include everything but the kitchen sink, so why not code-name 3.0 inspired
by this obvious "lack"? Okay, perhaps not quite so, but it was close!

Date: Mon, 22 Jun 1998 09:45:20 -0700
From: Camelot Administrator <camelot.admin at lmco dot com>
Subject: Autoshare Scripting questions

Background:

I'm trying to establish a hook such that when users are remotely
subscribed, they automatically get a welcome message.  Currently, the
Subscribe process extender only acts upon direct subscribes, not remote
subscribes.  So it would appear that this is not possible until this is
changed (which I believe should be soon :)).

In the meantime, I have some other questions regarding the script I'm
writing in preparation for this.

1. How do I make this script only run on certain lists?  I want it to run on=
ly
for the SYAC and SYGS lists.

The following questions are in reference to the following piece of script:
=2E..
	From {Email:"camelot.admin@lmco dot com", Ename:"Camelot Postmaster"} ¬
	Subject ("Hello from Mailing List: " & kList) ¬
	Body String ("You were subscribed on " & kRFCDate) ¬
	Precedence "bulk" Body Header "Subscribed" Body File ("FAQ:" & kList) ¬
	Body Footer "Thank you"
=2E..

2. The string in Body String is never displayed.  Why?

3. What is Precendence "bulk" needed for?

4. The file, ("FAQ:" & kList), is not showing up.  I have the file located
in a folder named FAQ within the Docs folder.  Any ideas?

Thanks,
Bill

+----------------------------------------------------------------+
| Bill Catambay, Software Developer, Web Geek                    |
| Lockheed Martin, Enterprise Information Systems, Sunnyvale, CA |
| WORK -> mailto:bill.m.catambay at lmco dot com                        |
| HOME -> mailto:bill at catambay dot com                               |
|                                                                |
| Pascal Central    -> http://www.catambay.com/pascal-central    |
| Macintosh Guild   -> http://www.rahul.net/rrk/lmms/mac         |
+----------------------------------------------------------------+



Date: Tue, 23 Jun 1998 12:24:00 -0700
From: Camelot Administrator <camelot.admin at lmco dot com>
Subject: Is there anybody on this list?

	Just wondering.... haven't seen any replies to my post, nor any
other post.

+----------------------------------------------------------------+
| Bill Catambay, Software Developer, Web Geek                    |
| Lockheed Martin, Enterprise Information Systems, Sunnyvale, CA |
| WORK -> mailto:bill.m.catambay at lmco dot com                        |
| HOME -> mailto:bill at catambay dot com                               |
|                                                                |
| Pascal Central    -> http://www.catambay.com/pascal-central    |
| Macintosh Guild   -> http://www.rahul.net/rrk/lmms/mac         |
+----------------------------------------------------------------+



Date: Tue, 23 Jun 1998 12:41:02 -0700
From: Mikael Hansen <meh at dnai dot com>
Subject: Re: [AS-Dev] Is there anybody on this list?

At 12:24 -0700 23/6/1998, Camelot Administrator wrote:

>	Just wondering.... haven't seen any replies to my post, nor any
>other post.

Sorry, just busy these days... Will see to it this evening.

Date: Tue, 23 Jun 1998 18:59:28 -0700
From: Mikael Hansen <meh at dnai dot com>
Subject: Re: [AS-Dev] Autoshare Scripting questions

At 09:45 -0700 22/6/1998, Camelot Administrator wrote:

>I'm trying to establish a hook such that when users are remotely
>subscribed, they automatically get a welcome message.  Currently, the
>Subscribe process extender only acts upon direct subscribes, not remote
>subscribes.  So it would appear that this is not possible until this is
>changed (which I believe should be soon :)).

Looking into it :-)

>1. How do I make this script only run on certain lists?  I want it to run
>only for the SYAC and SYGS lists.

You have to apply a condition in AppleScript such as

  if kList = "Fun-L" then

>The following questions are in reference to the following piece of script:
>...
>	From {Email:"camelot.admin@lmco dot com", Ename:"Camelot Postmaster"} ¬
>	Subject ("Hello from Mailing List: " & kList) ¬
>	Body String ("You were subscribed on " & kRFCDate) ¬
>	Precedence "bulk" Body Header "Subscribed" Body File ("FAQ:" & kList) ¬
>	Body Footer "Thank you"
>...
>
>2. The string in Body String is never displayed.  Why?

=46rom the AppleScript dictionary: "When Body File is specified, Body String
is not used, even if specified". The body is one of the two.

>3. What is Precendence "bulk" needed for?

=46or bulk mail.

>4. The file, ("FAQ:" & kList), is not showing up.  I have the file located
>in a folder named FAQ within the Docs folder.  Any ideas?

I misunderstood you the first time. You have to specify an absolute path
for the file, and it doesn't matter where the file is.

Date: Tue, 23 Jun 1998 23:25:16 -0700
From: Mikael Hansen <meh at dnai dot com>
Subject: Remote process extender type

Having looked into it, I think I'm going to change the narrow System
process extender type to a wider Remote process extender type.

To assure backwards compatibility, I'll stick with

on «event AuSYaUSY» (aList)
end «event AuSYaUSY»

The System process extender uses

  set kSystemType to item 10 of aList

  set kSystemLaunch to "1"
  set kSystemQuit to "2"

kSystemType will be renamed to kRemoteType, and a kSubscribe = 3 signals
that we are dealing with a remote command being Subscribe.

  set kRemoteType to item 10 of aList

  set kSystemLaunch to "1"
  set kSystemQuit to "2"
  set kSubscribe to "3"

kList will naturally be used for the list name (remote command's 4th word),
while the new variables kEmail = 14 and kName = 15 indicate the remote
command's e-mail address (3rd word) and name (5th word).

  set kList to item 9 of aList
  set kRemoteType to item 10 of aList
  set kEmail to item 14 of aList
  set kName to item 15 of aList

  set kSystemLaunch to "1"
  set kSystemQuit to "2"
  set kSubscribe to "3"

kSystemLaunch and kSystemQuit are not remote commands, so let's do this.

  set kList to item 9 of aList
  set kRemoteType to item 10 of aList
  set kEmail to item 14 of aList
  set kName to item 15 of aList
  set kOptions to item 16 of aList

  set kSystem to "1"
  set kSubscribe to "2"

  set kLaunch to "1"
  set kQuit to "2"

where kSystem or kSubscribe is a value of kRemoteType, and kLaunch or kQuit
is a value of kOptions.

Lining up and re-ordering everything, we get something like

  set kList to item 9 of aList
  set kRemoteType to item 10 of aList
  set kEmail to item 14 of aList
  set kName to item 15 of aList
  set kOptions to item 16 of aList

  set kSubscribe to "1"
  set kUnsubscribe to "2"
  set kReview to "3"
  set kSet to "4"
  set kAnalysis to "5"
  set kPost to "6"
  set kPassword to "7"
  set kApplication to "8"
  set kSystem to "9"

  set kLaunch to "1"
  set kQuit to "2"

Does this make sense to you all?

So if you want to do the Subscribe command, you do

if kRemoteType = kSubscribe then
end if

Let's add the Send Mail to it.

if kRemoteType = kSubscribe then
  Send Mail ¬
    To {Email: kEmail, Ename: kName} ¬
    From {Email:"m@e", Ename:"me"} ¬
    Subject ("Hello from Mailing List: " & kList) ¬
    Body String ("You have been subscribed") ¬
    Precedence "bulk" ¬
    Body Header "Subscribed"
end if

How is that?

Date: Wed, 24 Jun 1998 09:52:26 -0700
From: Camelot Administrator <camelot.admin at lmco dot com>
Subject: Re: [AS-Dev] Remote process extender type

Well, being that I'm pretty new to Process Extenders, I will allow the
veterans to comment on the implementation.  The bottom line appears to be
that I'll be able to take advantage of the System process extender to
handle remote subscribes.  That would be a great thing!

Thanks,
Bill

+----------------------------------------------------------------+
| Bill Catambay, Software Developer, Web Geek                    |
| Lockheed Martin, Enterprise Information Systems, Sunnyvale, CA |
| WORK -> mailto:bill.m.catambay at lmco dot com                        |
| HOME -> mailto:bill at catambay dot com                               |
|                                                                |
| Pascal Central    -> http://www.catambay.com/pascal-central    |
| Macintosh Guild   -> http://www.rahul.net/rrk/lmms/mac         |
+----------------------------------------------------------------+



Date: Sun, 25 Oct 1998 01:02:18 -0800
From: Mikael Hansen <meh at dnai dot com>
Subject: Daylight-saving time

worked fine :-)

Date: Sun, 25 Oct 1998 01:49:40 -0700
From: Mikael Hansen <meh at dnai dot com>
Subject: On Mac OS 8.5

Here are my initial findings on Mac OS 8.5, comments are appreciated. It 
was a rainy, boring day today, now waiting to see if daylight-saving time 
will be turned off automatically.

* Before

Mac OS 8.5 is for PPC Macs only.

Be aware that (to the best of my knowledge) OS 8.5 may destroy the 
partition table for drives formatted or partitioned with non-Apple tools or 
on non-Apple OS's.

* Installing Mac OS 8.5

Once you have booted off the Mac OS 8.5 CD, clicked on the 8.5 installer, 
installed the standard 8.5 and rebooted from your updated start-up volume, 
8.5 takes you into the Mac OS and Internet Setup Assistants. My advice is 
to exit and forget about these two well-meaning assistants and instead use 
the corresponding control panels directly. The Internet Setup Assistant for 
instance takes you online once you have answered lots of questions, but 
doesn't tell you how you actually got online and how you'll get online 
again.

Mac OS Setup Assistant
Internet Setup Assistant
  Internet Editor Assistant
  ISP Referral Assistant
(DialAssist)

Mac OS control panels, e.g. Date & Time, File Sharing
Networking control panels, e.g. Remote Access, TCP/IP

* Remote Access 3.1 (client)

I was looking for the PPP control panel from OT/PPP, but it wasn't there. I 
didn't even bother to open the Remote Access control panel because of its 
AppleTalk only history and instead tried lots of other stuff which brought 
me nowhere. I eventually succumbed to opening Remote Access, which looked 
just like PPP from OT/PPP! I incidently later read that

  OT/PPP users will note that the Remote Access control panel
  replaces the PPP control panel.

from the Remote Access Read Me(!) in the Mac OS Read Me Files. And

  Apple Remote Access version 3.1 client is bundled with
  Open Transport 2.0 and replaces OT/PPP and ARA 2.1 client
  as part of the system release.

Okay, so OT/PPP has been renamed to Remote Access, and the ARAP protocol 
has been added to its Options (it's my guess that ARAP was never supported 
in OT/PPP). The 3.1 client however is a thrill to use (as OT/PPP always 
was, but now for AppleTalk as well), and I quickly deleted the old Remote 
Access Client software.

Both Remote Access (also in OT/PPP) and TCP/IP (also previously) offer 
multiple settings, but it's a pity that a given 8.5 Remote Access doesn't 
link to a given TCP/IP setting. Once you switch to another Remote Access 
setting, it's easy forgetting to also manually switch to the corrresponding 
TCP/IP setting.

The improved network transfer speed is certainly nice.

* The Internet folder

I don't care much for the Microsoft (and some other) stuff included in 
recent Mac OS CD's, so I deleted the following from the Internet folder:

Claris Emailer Lite 1.1v4 (October 1996), which is dead, I believe
Internet Explorer 4.01 (May 1998), which I already have installed
Outlook Express 4.01 (May 1998), which I already have installed
StuffIt Expander and DropStuff, which I already have installed

Here's a distinction on the personal web services stuff:

Apple (almost File Sharing related):
  Web Sharing control panel
  Web Pages folder
Microsoft:
  Personal Web Manager control panel
  My Personal Web Site folder

It may be added that I use primarily Eudora for e-mail, primarily Netscape 
for web browsing, primarily NewsWatcher for news groups and primarily Fetch 
and Anarchie for ftp.

* The Internet control panel

Apple's Internet control panel is Internet Config (freeware by Quinn and 
Peter N Lewis) integrated in the Mac OS and uses the same Internet 
Preferences file as IC 2.0.

The shared Internet preferences concept is nice, but Microsoft abuses it. 
An application such as Outlook Express writes to the Internet Preferences 
file whether you like it or not (it's optional in most other programs such 
as Eudora). The Internet control panel however allows you to enter the 
Administration mode and lock individual fields within a preference set, 
which can get rather tedious though. So how does OE 4.01 react to that? 
Well, the same way it seemingly updates and saves the preferences, but 
doesn't do it anyway!

Internet (unlike IC) supports multiple settings (much like the Extensions 
Manager).

* AppleScript

Native AppleScript (and support for it in many OS parts and with folder 
actions) has a very nice ring to it. But let's face it: 1. some speed 
enhancements may be due to the native QuickDraw, 2. run-only, keep open 
AppleScript applications have a memory leak in some Scripting Additions 
related situations, 3. the Script Editor is from May 1997, 4. AppleEvents 
are still not native.

* Sherlock

This Internet search concept integrated in the Mac OS Find is not that big 
of a deal really, although the plug-in thing is nice.

* The Finder interface

Smart Scrolling with the new Application Switcher may come in handy for 
some users. As the Open and Save dialog boxes may do. Plus the Appearance 
control panel etc.

That's it so far.

Date: Sun, 25 Oct 1998 06:17:56 -0800
From: Mark Hartman <mh at harthaven dot com>
Subject: Re: [AS-Dev] On Mac OS 8.5

At 12:49 AM -0800 10/25/1998, Mikael Hansen wrote:
>Both Remote Access (also in OT/PPP) and TCP/IP (also previously) offer
>multiple settings, but it's a pity that a given 8.5 Remote Access doesn't
>link to a given TCP/IP setting. Once you switch to another Remote Access
>setting, it's easy forgetting to also manually switch to the
>corrresponding
>TCP/IP setting.

You might want to try using the Location Manger to link settings with
each other.



Date: Sat, 20 Feb 1999 13:56:22 -0800
From: Mikael Hansen <meh at dnai dot com>
Subject: Preprocesor

At 11:52 -0800 2/13/99, Matthew Hill wrote:

> What i am looking for is a preprocessor that will grab the email to the
> list server check to be sure there is an email address, name, and user
> number.  Then to check to be sure they can subscribe to a given list.
> If they can then subscribe them and add all the info to a data base.

If you want to target subscription requests only, the Subscribe 
process extender (e.g. the FileMaker Pro sample) is the way to go. 
The Before Processing process extender on the other hand looks at any 
message and is likely to require a little more work as the list name 
isn't passed on to the process extender.

Here is the simple skeleton process extender code:

on idle
  return 300
end idle

on «event AuSUaUSU» (aList) -- AuSUaUSU means Subscribe PE
  -- code for main handler goes here
end «event AuSUaUSU»

The main handler code might start out with:

  set kSender to item 3 of aList -- sender of message
  set kRFCDate to item 8 of aList
  set kList to item 9 of aList -- not used with Before Processing PE

Let's take it from here, one step at a time.

Date: Sat, 20 Feb 1999 18:02:01 -0800
From: Matthew Hill <happytwo at milepost1 dot com>
Subject: Re: [AS-Dev] Preprocesor

It only needs to be for the subscription request.  I do not understand
the preprocessor process very well.  So is it possible to explain what
is happening in the code?
Thanks
Matthew

Mikael Hansen wrote:
> 
> At 11:52 -0800 2/13/99, Matthew Hill wrote:
> 
> > What i am looking for is a preprocessor that will grab the email to the
> > list server check to be sure there is an email address, name, and user
> > number.  Then to check to be sure they can subscribe to a given list.
> > If they can then subscribe them and add all the info to a data base.
> 
> If you want to target subscription requests only, the Subscribe
> process extender (e.g. the FileMaker Pro sample) is the way to go.
> The Before Processing process extender on the other hand looks at any
> message and is likely to require a little more work as the list name
> isn't passed on to the process extender.
> 
> Here is the simple skeleton process extender code:
> 
> on idle
>   return 300
> end idle
> 
> on «event AuSUaUSU» (aList) -- AuSUaUSU means Subscribe PE
>   -- code for main handler goes here
> end «event AuSUaUSU»
> 
> The main handler code might start out with:
> 
>   set kSender to item 3 of aList -- sender of message
>   set kRFCDate to item 8 of aList
>   set kList to item 9 of aList -- not used with Before Processing PE
> 
> Let's take it from here, one step at a time.

--