Monday, November 08, 2010 at 12:04 AM.
system.verbs.builtins.mainResponder.members.sendMail
on sendMail (mailaddress, adrmemberstable, pta=nil) {
<<Changes:
<<04/14/00; 9:15:22 PM by JES
<<localized error messages
<<05/01/00; 6:58:20 PM by JES
<<Changed getString calls to use a replacement table address instead of a lists
<<10/27/00; 10:35:01 PM by PBS
<<The page table addres is now an optional parameter. It may be needed by localization routines.
mainresponder.members.validmailaddress (mailaddress); //scriptErrors if not valid
local (adrusers = @adrmemberstable^.users);
if not defined (adrusers^) {
new (tabletype, adrusers)};
local (adrpendingmember = @adrusers^.[mailaddress]);
local (flnewpassword = true);
if adrmemberstable^.openToPublic {
if defined (adrpendingmember^) {
flnewpassword = false}
else {
new (tabletype, adrpendingmember)}}
else {
if not defined (adrpendingmember^) {
local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list
replacementTable.sysopmail = user.prefs.mailaddress;
scriptError (mainResponder.getString ("members.sendMailNotPublicError", @replacementTable, pta:pta))}; // 4/14/00 JES: localized //PBS 10/27/00: send pta parameter
if defined (adrpendingmember^.password) {
local (replacementTable); new (tableType, @replacementTable); // 05/01/00 JES: use replacement table instead of a list
replacementTable.mailaddress = mailaddress;
scriptError (mainResponder.getString ("members.sendMailAlreadyMemberError", @replacementTable, pta:pta))}}; // 4/14/00 JES: localized //PBS 10/27/00: send pta parameter
if flnewpassword {
local (password);
bundle { //create a new password
for i = 1 to 12 {
password = password + char (random ('A', 'Z'))};
adrpendingmember^.password = password}};
bundle { //send the email message
local (s = string (adrmemberstable^.mailtemplate));
s = string.replaceAll (s, "<<password>>", adrpendingmember^.password);
s = string.davenetMassager (2, 60, s);
local (subject = adrmemberstable^.mailSubject);
local (returnAddress = adrmemberstable^.mailReturnAddress);
tcp.sendMail (mailaddress, subject, s, returnAddress);
msg ("")}; //erase messages displayed by tcp.sendMail
fileMenu.saveMyRoot (adrmemberstable);
return (true)}
<<bundle //test code
<<sendMail ("dave@userland.com", @["C:\\Palm Springs\\Websites\\discussiongroup.root"].["#members"])
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.