Changeset 269

Show
Ignore:
Timestamp:
12/25/07 23:46:40 (1 year ago)
Author:
rentzsch
Message:

[NEW] JRMailDelivery: public version that suppports SMTP AUTH.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/webobjects/JRMailDelivery/JRMailDelivery.java

    r34 r269  
    1 // JRMailDelivery.java 
    2 // 
    3 // Copyright (c) 2002 Red Shed Software. All rights reserved. 
    4 // by Jonathan 'Wolf' Rentzsch (jon at redshed dot net) 
    5 //  
    6 // Tue Mar 19 2002 wolf: Created. 
     1/******************************************************************************* 
     2        JRMailDelivery.java 
     3                Copyright (c) 2002-2007 Jonathan 'Wolf' Rentzsch: <http://rentzsch.com> 
     4                Some rights reserved: <http://opensource.org/licenses/mit-license.php> 
     5 
     6        ***************************************************************************/ 
    77 
    88import com.webobjects.foundation.*; 
     
    3131    JRMailDelivery() { 
    3232        Properties properties = new Properties(); 
    33         JAssert.notEmpty( WOApplication.application().SMTPHost() ); 
    34         properties.put( "mail.smtp.host", WOApplication.application().SMTPHost() ); 
    35         _session = javax.mail.Session.getDefaultInstance( properties ); 
    36         properties = null; 
     33        //;JAssert.notEmpty( WOApplication.application().SMTPHost() ); 
     34                if (NSProperties.getProperty("WOSMTPPassword") != null) { 
     35                        properties.put( "mail.smtp.auth", "true" ); 
     36                } 
     37                _session = javax.mail.Session.getDefaultInstance( properties ); 
     38                //_session.setDebug(true); 
    3739    } 
    3840     
     
    4749        boolean sendNow ) 
    4850    { 
    49         JAssert.notEmpty( fromEmailAddress ); 
    50         JAssert.notNull( toEmailAddresses ); 
    51         JAssert.greaterThan( toEmailAddresses.count(), 0 ); 
    52         JAssert.notEmpty( message ); 
    53          
    54         JAssert.notNull( _session ); 
     51        //;JAssert.notEmpty( fromEmailAddress ); 
     52        //;JAssert.notNull( toEmailAddresses ); 
     53        //;JAssert.greaterThan( toEmailAddresses.count(), 0 ); 
     54        //;JAssert.notEmpty( message ); 
     55         
     56        //;JAssert.notNull( _session ); 
    5557         
    5658        MimeMessage smtpMessage = newMimeMessage( fromEmailAddress, toEmailAddresses, bccEmailAddresses, subject, message, "text/plain", sendNow ); 
    57              
    58         return mimeMessageToString( smtpMessage ); 
     59                return mimeMessageToString( smtpMessage ); 
    5960    } 
    6061     
     
    6970        boolean         sendNow ) 
    7071    { 
    71         JAssert.notEmpty( fromEmailAddress ); 
    72         JAssert.notNull( toEmailAddresses ); 
    73         JAssert.greaterThan( toEmailAddresses.count(), 0 ); 
    74         JAssert.notNull( component ); 
    75         JAssert.notNull( component.context() ); 
    76          
    77         JAssert.notNull( _session ); 
     72        //;JAssert.notEmpty( fromEmailAddress ); 
     73        //;JAssert.notNull( toEmailAddresses ); 
     74        //;JAssert.greaterThan( toEmailAddresses.count(), 0 ); 
     75        //;JAssert.notNull( component ); 
     76        //;JAssert.notNull( component.context() ); 
     77         
     78        //;JAssert.notNull( _session ); 
    7879         
    7980        WOSession session = component.context()._session(); 
     
    9495         
    9596        MimeMessage smtpMessage = newMimeMessage( fromEmailAddress, toEmailAddresses, bccEmailAddresses, subject, response, "text/html", sendNow ); 
    96              
    97         return mimeMessageToString( smtpMessage ); 
     97                return mimeMessageToString( smtpMessage ); 
     98    } 
     99         
     100        public 
     101        String 
     102    composePlainTextComponentEmail( 
     103        String          fromEmailAddress, 
     104        NSArray         toEmailAddresses, 
     105        NSArray         bccEmailAddresses, 
     106        String          subject, 
     107        WOComponent     component, 
     108        boolean         sendNow ) 
     109    { 
     110        //;JAssert.notEmpty( fromEmailAddress ); 
     111        //;JAssert.notNull( toEmailAddresses ); 
     112        //;JAssert.greaterThan( toEmailAddresses.count(), 0 ); 
     113        //;JAssert.notNull( component ); 
     114        //;JAssert.notNull( component.context() ); 
     115         
     116        //;JAssert.notNull( _session ); 
     117         
     118        WOSession session = component.context()._session(); 
     119        String response; 
     120         
     121        component.context()._generateCompleteURLs(); 
     122        if( session == null ) { 
     123            response = component.generateResponse().contentString(); 
     124        } else { 
     125            boolean oldStoresIDsInURLs = session.storesIDsInURLs(); 
     126            session.setStoresIDsInURLs( true ); 
     127            response = component.generateResponse().contentString(); 
     128            session.setStoresIDsInURLs( oldStoresIDsInURLs ); 
     129        } 
     130        component.context()._generateRelativeURLs(); 
     131         
     132        //-- 
     133                 
     134                MimeMessage smtpMessage = newMimeMessage( fromEmailAddress, toEmailAddresses, bccEmailAddresses, subject, response, "text/plain", sendNow ); 
     135                return mimeMessageToString( smtpMessage ); 
    98136    } 
    99137     
     
    101139        void 
    102140    sendEmail( String mailString ) { 
    103         JAssert.notEmpty( mailString ); 
    104         JAssert.notNull( _session ); 
     141        //;JAssert.notEmpty( mailString ); 
     142        //;JAssert.notNull( _session ); 
    105143         
    106144        ByteArrayInputStream bais = new ByteArrayInputStream( mailString.getBytes() ); 
     
    137175        boolean sendNow ) 
    138176    { 
    139         JAssert.notEmpty( fromEmailAddress ); 
    140         JAssert.notNull( toEmailAddresses ); 
    141         JAssert.greaterThan( toEmailAddresses.count(), 0 ); 
    142         JAssert.notEmpty( message ); 
    143         JAssert.notEmpty( contentType ); 
    144          
    145         JAssert.notNull( _session ); 
     177        //;JAssert.notEmpty( fromEmailAddress ); 
     178        //;JAssert.notNull( toEmailAddresses ); 
     179        //;JAssert.greaterThan( toEmailAddresses.count(), 0 ); 
     180        //;JAssert.notEmpty( message ); 
     181        //;JAssert.notEmpty( contentType ); 
     182         
     183        //;JAssert.notNull( _session ); 
    146184         
    147185        MimeMessage smtpMessage = null; 
     
    181219        String 
    182220    mimeMessageToString( MimeMessage smtpMessage ) { 
    183         JAssert.notNull( smtpMessage ); 
     221        //;JAssert.notNull( smtpMessage ); 
    184222         
    185223        String result = null; 
     
    204242        public void run() { 
    205243            try { 
    206                 Transport.send( _smtpMessage ); 
     244                                Transport tr = JRMailDelivery.sharedInstance()._session.getTransport("smtp"); 
     245                                tr.connect(NSProperties.getProperty("WOSMTPHost"), 
     246                                                   NSProperties.getProperty("WOSMTPAccount"), 
     247                                                   NSProperties.getProperty("WOSMTPPassword")); 
     248                                _smtpMessage.saveChanges(); 
     249                                tr.sendMessage(_smtpMessage, _smtpMessage.getAllRecipients()); 
     250                                tr.close(); 
    207251            } catch( javax.mail.MessagingException x ) { 
    208252                JRMailDelivery.log.error( x ); 
  • trunk/webobjects/JRMailDelivery/PlainTextEmail.java

    r34 r269  
    2323    } 
    2424 
    25  
    26  
    27      
    2825    protected void sendComponentEmail( String fromEmailAddress, String toEmailAddress, String subject, WOComponent component, boolean sendNow ) { 
    2926        NSData contentData = generateResponse().content(); 
     
    3229        JRMailDelivery.sharedInstance().composeComponentEmail( fromEmailAddress, new NSArray( toEmailAddress ), null, subject, component, true ); 
    3330    } 
    34  
    35      
    3631}