I found the solution.
1. Add the
mail.smtp.auth = true
in the mail.properties
2. Add a MyAuthenticator Class
import javax.mail.*;
public class MyAuthenticator extends Authenticator
{
public PasswordAuthentication getPasswordAuthentication()
{
return new javax.mail.PasswordAuthentication("[EMAIL PROTECTED]", "xxxx");
}
}
3. Use the new Session with the Autherticator.
javax.mail.Session session = (javax.mail.Session)
initial.lookup("java:comp/env/MailSession");
javax.mail.Authenticator auth = new MyAuthenticator();
java.util.Properties props = session.getProperties();
javax.mail.Session sessionNew = javax.mail.Session.getInstance(props, auth);
// Create a new mail object
javax.mail.Message msg = new MimeMessage(sessionNew);
�� 2002-08-18 02:28:21 �����
>EJB-INTEREST:
>
>I try to send email from the EJB by the jboss's Mail Session Service.
>But the smtp service on the smtp.163.net need the user/passwd if you want to use
>smtp.163.net to send email,
>I have an account, but I don't know how to configure the JBOSS.
>
>In the jboss.jcml
>
> <mbean code="org.jboss.mail.MailService" name=":service=Mail">
> <attribute name="JNDIName">Mail</attribute>
> <attribute name="ConfigurationFile">mail.properties</attribute>
> <attribute name="User">cm99</attribute>
> <attribute name="Password">*******</attribute>
> </mbean>
>
>In the mail.properties
>
># Change to your mail server prototocol
>mail.store.protocol = pop3
>mail.transport.protocol = smtp
># Change to the user who will receive mail
>mail.user = cm99
># Change to the mail server
>mail.pop3.host = pop.163.net
># Change to the SMTP gateway server
>mail.smtp.host = smtp.163.net
># Change to the address mail will be from
>mail.from = [EMAIL PROTECTED]
># Enable debugging output from the javamail classes
>mail.debug = false
>
>In the MessageBean
> Context initial = new InitialContext();
> // look up the mail server session
> javax.mail.Session session = (javax.mail.Session)
> initial.lookup("java:comp/env/MailSession");
>
> // Create a new mail object
> javax.mail.Message msg = new MimeMessage(session);
>
> // set various mail properties
> msg.setFrom();
> msg.setRecipients(javax.mail.Message.RecipientType.TO,
> InternetAddress.parse(recipient, false));
> msg.setSubject("Order Confirmation");
> DateFormat dateFormatter = DateFormat.getDateTimeInstance(
> DateFormat.LONG, DateFormat.SHORT);
> Date timeStamp = new Date();
> String messageText = "Thank you for your order." + '\n'
> + "We received your order on "
> + dateFormatter.format(timeStamp) + ".";
> msg.setText(messageText);
> msg.setSentDate(timeStamp);
>
> // send the mail message
> Transport.send(msg);
>
> In the server.log
>
>[02:20:02,330,Default] javax.ejb.EJBException: Sending failed;
> nested exception is:
> javax.mail.MessagingException: 553 You are not authorized to send mail as
><MAIL FROM:<[EMAIL PROTECTED]>>, authentication is required
>[02:20:02,440,Default] at MessageBean.sendNote(MessageBean.java:92)
>[02:20:02,440,Default] at MessageBean.onMessage(MessageBean.java:51)
>[02:20:02,440,Default] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
>Method)
>[02:20:02,500,Default] at
>sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>[02:20:02,550,Default] at
>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>[02:20:02,610,Default] at java.lang.reflect.Method.invoke(Method.java:324)
>[02:20:02,660,Default] at
>org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:406)
>[02:20:02,660,Default] at
>org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT.invoke(MessageDrivenTxInterceptorBMT.java:81)
>[02:20:02,720,Default] at
>org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:81)
>[02:20:02,720,Default] at
>org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:127)
>[02:20:02,770,Default] at
>org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:170)
>[02:20:02,770,Default] at
>org.jboss.ejb.MessageDrivenContainer.invoke(MessageDrivenContainer.java:281)
>[02:20:02,770,Default] at
>org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:584)
>[02:20:02,830,Default] at
>org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:930)
>[02:20:02,940,Default] at
>org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:233)
>[02:20:02,990,Default] at
>org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:565)
>[02:20:03,050,Default] at
>org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:376)
>[02:20:03,100,Default] at org.jboss.mq.SpySession.run(SpySession.java:248)
>[02:20:03,160,Default] at
>org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:172)
>[02:20:03,210,Default] at
>EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:725)
>[02:20:03,270,Default] at java.lang.Thread.run(Thread.java:536)
>
>
>
> David Chen
> [EMAIL PROTECTED]
��
��
����
[EMAIL PROTECTED]
==========================================================================To
unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST". For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".