Hi Ted, I am doing this if I want different settings from the application properties:
ERJavaMail jm = ERJavaMail.sharedInstance(); Properties props = jm.defaultSession().getProperties(); props.put("mail.smtp.host", smtpHost); props.put("mail.smtp.auth", smtpAuth); props.put("mail.smtp.user", smtpUser); props.put("mail.smtp.password", smtpPassword); Session session = jm.newSession(props); ERMailDeliveryPlainText mail = new ERMailDeliveryPlainText(session); ... jw Am 29.10.2011 um 00:35 schrieb Theodore Petrosky: > 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 <prab...@me.com> >> Subject: Re: setting properties ?? >> To: WebObjects Development <webobjects-dev@lists.apple.com> >> Message-ID: <476a4ac8-52de-4901-aa2f-df45dd3d4...@me.com> >> 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 <kelleh...@gmail.com> >> wrote: >>> >>>> From: Kieran Kelleher <kelleh...@gmail.com> >>>> Subject: Re: setting properties ?? >>>> To: "Theodore Petrosky" <tedp...@yahoo.com> >>>> Cc: webobjects-dev@lists.apple.com >>>> 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("tpetro...@agencysacks.com", >>>> "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("tedp...@yahoo.com", >>>> "Theodore Petrosky"); >>>>> mail.setFromAddress("tpetro...@agencysacks.com", >>>> "Ted Petrosky"); >>>>> mail.setReplyToAddress("tpetro...@agencysacks.com", >>>> "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 = tpetro...@agencysacks.com >>>>> 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 "ad...@yourhost.com". >>>>> >>>>> 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("tpetro...@agencysacks.com", >>>> "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 (Webobjects-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com