Jason,
> I'm looking a for bean that can send mail to an smtp server that handles
> authorization

To be honest I've never needed to do this, but I suspect that your best bet would be 
to use Java Mail, I've quickly run through relevant parts of James code and put 
together a method outlining the key steps involved, I make no representations as to 
its fitness for any purpose ;-) but I hope its a good clue. As with HTTP AUTH, SMTP 
AUTH is complicated by having to agree to use the strongest common auth encryption 
with the server, so most simple SMTP clients probably sidestep the issue altogether.

Be warned that while James uses the default mail session with no authenticator, doing 
this will allow other apps in the same JVM to access your usernames and passwords.

d.

----------------------------------------------------------------
package uk.co.killerbees.mailets;

import java.util.Properties;

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.URLName;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

/**
 * @author $author$
 * @version $Revision$
 */
public class JavaMailSendExample {
    /**
     * Example code. WYSIWYG
     *
     * @param args .
     */
    public static void main(String[] args) {
        try {
            new JavaMailSendExample().send();
        } catch (AddressException e) {
                //ignore for the sake of readability
        } catch (MessagingException e) {
                //ignore for the sake of readability
        }
    }


    public void send() throws AddressException,MessagingException {
        // first some basic information about our message
        String user            = "danny";
        String password        = "passme";
        String sender          = "[EMAIL PROTECTED]";
        String destinationHost = "127.0.0.1";

        // next
        // set some system defaults, not really needed for this example
        // as we will be actively setting all the relevant properties
          // but safer to set something than nothing at all

        Properties mailProps = new Properties();
        mailProps.put("mail.smtp.user",sender);
        mailProps.put("mail.smtp.from",sender);

        // technically this should refer to your default upstream SMTP relay
        mailProps.put("mail.host",destinationHost);

        // this is the URL of the machine we want to connect to to deliver our mail:
        URLName destinationURL = new URLName("smtp://"+destinationHost);

        // now lets get the javamail default instance
        Session session = Session.getDefaultInstance(mailProps);

        // tell the session what credentials to use for this host
        session.setPasswordAuthentication(destinationURL,new 
PasswordAuthentication(user,password));

        // create a simple mail message
        MimeMessage message = new MimeMessage(session);
        message.setRecipients(Message.RecipientType.TO,"[EMAIL PROTECTED]");
        message.setSender(new InternetAddress(sender));
        message.setSubject("Oh la la, its an email");
        message.setText("This is the body");

        // get the transporter to our host, this will be responsible for calling 
          // the PasswordAuthenticator we passed to the session to get the credentials
          // for this URL
        Transport trans = session.getTransport(destinationURL);

        // connect and send
        trans.connect();
        trans.send(message);
        trans.close();
    }
}


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to