but how do you handle the situation where you don't know the smtp server, or the smtp server is changing?
I want to store the smtp server (and port) as an attribute in my database then I can adjust it as needed. Am I thinking about this 'wrong'? TEd ---------------------------------------------------------------------- > > Message: 1 > Date: Tue, 25 Oct 2011 00:34:43 +0200 > From: Philippe Rabier <[email protected]> > Subject: Re: setting properties ?? > To: WebObjects Development <[email protected]> > Message-ID: <[email protected]> > Content-Type: text/plain; CHARSET=US-ASCII > > Theodore, I'm afraid you use properties the wrong way. > > Personally, I never set properties in my own code, only > read them (except for frameworks I wrote of course). > Properties are used to initialize informations. > > By setting default values in your framework, you can change > them in your application. And you can have several > properties files in your have with a different suffix > (Properties.staging, Properties.production for example). > Then you can set a user through the WOMonitor in the > additional arguments like -Duser.name=staging and the right > file will be opened. > > I hope you read the wiki because there are useful > informations like > http://wiki.objectstyle.org/confluence/display/WO/Project+Wonder+Properties+Files > > Now if you want to modify on the fly ERJavaMail, use the > accessors like setCentralize(boolean) for example because > properties can be read once during initialization. If you > don't find an accessor, maybe you can't change it. I > wouldn't be surprised if the smtp host is one of them. > > Philippe > > On 24 oct. 2011, at 16:39, Theodore Petrosky wrote: > > > > > > > --- On Sun, 10/23/11, Kieran Kelleher <[email protected]> > wrote: > > > >> From: Kieran Kelleher <[email protected]> > >> Subject: Re: setting properties ?? > >> To: "Theodore Petrosky" <[email protected]> > >> Cc: [email protected] > >> Date: Sunday, October 23, 2011, 10:42 PM > >> You can specify the properties in > >> your Properties file (inside Resources folder in > your > >> project), for example: > >> > >> er.javamail.centralize=false > >> > > > > what I am discovering is that there are some > ERJavaMail attributes that can be adjusted on the fly. > > > > centralize is not one of them. > > > > I have a little dummy app for testing and after I put > the er.javamail.centralize=false in the Properties file, I > can put: > > > > ERXProperties.setStringForKey("mail.agencysacks.com", > "mail.smtp.host"); > > > > in my component and it will use this mail server. > however if it is commented out, it will not find a mail > server and the sending will fail. > > > > Now I will experiment to discover what other > attributes MUST be in the Properties file and which can be > adjusted on the fly. > > > > Ted > > > > > > > >> > >> On Oct 23, 2011, at 7:34 AM, Theodore Petrosky > wrote: > >> > >>> I am working with sending email notifications > when my > >> users save edits to EOs. > >>> > >>> I discovered that I can update the properties > from my > >> app (in the application constructor) with: > >>> > >>> > ERXProperties.setStringForKey("mail.agencysacks.com", > >> "mail.smtp.host"); > >>> ERXProperties.setStringForKey("35", > >> "mail.smtp.port"); > >>> ERXProperties.setStringForKey("false", > >> "er.javamail.centralize"); > > >>> ERXProperties.setStringForKey("tpetrosky", > >> "er.javamail.smtpUser"); > >>> ERXProperties.setStringForKey("xxxx", > >> "er.javamail.smtpPassword"); > >>> ERXProperties.setStringForKey("true", > >> "er.javamail.smtpAuth"); > > >>> ERXProperties.setStringForKey("[email protected]", > >> "er.javamail.adminEmail"); > >>> > >>> so (as I am just playing because I need to > learn more) > >> I added some log statements in my save method: > >>> > >>> public WOActionResults saveChangesToItem() { > >>> . . . . . > >>> > >>> ERMailDeliveryHTML mail = new > ERMailDeliveryHTML (); > >>> > > >> > >>> IOChangeEmail component = > >> pageWithName(IOChangeEmail.class); > >>> mail.setComponent(component); > >>> > > >> > >>> System.out.println("inside try mail.smtp.host > = " + > >> ERXProperties.stringForKey("mail.smtp.host")); > >>> System.out.println("inside try mail.smtp.port > = " + > >> ERXProperties.stringForKey("mail.smtp.port")); > >>> System.out.println("inside try > er.javamail.centralize > >> = " + > >> > ERXProperties.stringForKey("er.javamail.centralize")); > >>> System.out.println("inside try > er.javamail.adminEmail > >> = " + > >> > ERXProperties.stringForKey("er.javamail.adminEmail")); > >>> > > >> > >>> mail.newMail(); > > >> > >>> mail.setToAddress("[email protected]", > >> "Theodore Petrosky"); > >>> mail.setFromAddress("[email protected]", > >> "Ted Petrosky"); > >>> mail.setReplyToAddress("[email protected]", > >> "Ted Petrosky"); > >>> mail.setSubject("An IO was edited and > saved!!"); > >>> > > >> > >>> mail.sendMail(); > >>> > >>> . . . . > >>> } > >>> > >>> this is the console: > >>> > >>> Oct 23 02:27:06 ASChelseaLoginGrid[56901] > DEBUG > >> NSLog - === Commit Internal > Transaction > >>> inside try mail.smtp.host = > mail.agencysacks.com > >>> inside try mail.smtp.port = 35 > >>> inside try er.javamail.centralize = false > >>> inside try er.javamail.adminEmail = [email protected] > >>> Oct 23 02:27:09 ASChelseaLoginGrid[56901] > DEBUG > >> NSLog - === Begin Internal > Transaction > >>> > >>> er.javamail.centralize was set to false in > the > >> application constructor. However it was ignored > and when I > >> looked at the logs in the mail server I see that > the > >> toAddress was "[email protected]". > >>> > >>> which was odd as I was setting the adminEmail > in the > >> application constructor also. > >>> > >>> After experimenting I find that these two > properties > >> do not 'stick' even though my log statements claim > that the > >> values are correct. > >>> > >>> ERXProperties.setStringForKey("false", > >> "er.javamail.centralize"); > >>> ERXProperties.setStringForKey("[email protected]", > >> "er.javamail.adminEmail"); > >>> > >>> bottom line, I got things to work, just not as > I > >> expected. Is this correct? Should I be adjusting > the > >> properties in the application constructor? If not, > then > >> where. Or maybe the better question is, "Is there > a better > >> way to do this?" > >>> > >>> > >>> Ted > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
