[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Classpathx-javamail] sending emails with authentication
From: |
Chris Burdess |
Subject: |
Re: [Classpathx-javamail] sending emails with authentication |
Date: |
Mon, 20 Sep 2010 08:40:24 +0100 |
Daniel Rindt wrote:
> Am Donnerstag, den 16.09.2010, 08:27 +0100 schrieb Chris Burdess:
>> The PrintStream(File) constructor specifically says that it won't
>> flush the underlying stream. You will need to call flush manually on
>> that PrintStream, or use the OutputStream constructor.
> Yes. But this is also not working:
> === 8< ===
> Session session = Session.getInstance(props, auth);
> session.setDebug(true);
> PrintStream ps = null;
> try {
> ps = new PrintStream("/tmp/classpathx-mail.out");
> session.setDebugOut(ps);
> } catch (FileNotFoundException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
> try {
> Message msg = new MimeMessage(session);
> msg.setFrom(new InternetAddress(senderAddress));
> msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
> recipientsAddress, false));
> msg.setSubject(subject);
> msg.setText(text);
> msg.saveChanges();
> Transport.send(msg);
> } catch (Exception e) {
> e.printStackTrace();
> }
> ps.flush();
> ps.close();
> === 8< ===
> I got nothing in the file, its just zero bytes. Thanks for further help.
I amended your code and got it to work:
Session session = Session.getInstance(props, auth);
session.setDebug(true);
OutputStream fos = null;
try {
fos = new FileOutputStream("classpathx-mail.out");
PrintStream ps = new PrintStream(fos);
session.setDebugOut(ps);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
Message msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(senderAddress));
msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
recipientsAddress, false));
msg.setSubject(subject);
msg.setText(text);
msg.saveChanges();
Transport.send(msg);
} catch (Exception e) {
e.printStackTrace();
}
//fos.close();
Note that if you close the FileOutputStream at the end you won't get any
output. This is down to some weirdness in exactly why/how/when PrintStreams get
flushed, which I'm afraid I don't understand myself, but it's not a problem in
the logging as far as I can see (which as I said simply uses the
java.util.logging mechanism. If you find any way to shed any light on what's
happening there please share it.
Regards
--
Chris Burdess
- [Classpathx-javamail] sending emails with authentication, Daniel Rindt, 2010/09/14
- Re: [Classpathx-javamail] sending emails with authentication, Chris Burdess, 2010/09/14
- Message not available
- Re: [Classpathx-javamail] sending emails with authentication, Chris Burdess, 2010/09/14
- Re: [Classpathx-javamail] sending emails with authentication, Daniel Rindt, 2010/09/15
- Re: [Classpathx-javamail] sending emails with authentication, Chris Burdess, 2010/09/16
- Re: [Classpathx-javamail] sending emails with authentication, Daniel Rindt, 2010/09/18
- Re: [Classpathx-javamail] sending emails with authentication,
Chris Burdess <=
- Re: [Classpathx-javamail] sending emails with authentication, Daniel Rindt, 2010/09/20
- Re: [Classpathx-javamail] sending emails with authentication, Chris Burdess, 2010/09/21
- Re: [Classpathx-javamail] sending emails with authentication, Daniel Rindt, 2010/09/21
- Message not available
- Message not available
- Message not available
- Re: [Classpathx-javamail] sending emails with authentication, Chris Burdess, 2010/09/27
- Re: [Classpathx-javamail] sending emails with authentication, Daniel Rindt, 2010/09/27