Package com.sun.mail.smtp
Class SMTPOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- com.sun.mail.util.CRLFOutputStream
-
- com.sun.mail.smtp.SMTPOutputStream
-
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable
public class SMTPOutputStream extends CRLFOutputStream
In addition to converting lines into the canonical format, i.e., terminating lines with the CRLF sequence, escapes the "." by adding another "." to any "." that appears in the beginning of a line. See RFC821 section 4.5.2.- Author:
- Max Spivak
- See Also:
CRLFOutputStream
-
-
Field Summary
-
Fields inherited from class com.sun.mail.util.CRLFOutputStream
atBOL, lastb
-
Fields inherited from class java.io.FilterOutputStream
out
-
-
Constructor Summary
Constructors Constructor Description SMTPOutputStream(OutputStream os)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidensureAtBOL()Ensure we're at the beginning of a line.voidflush()Override flush method in FilterOutputStream.voidwrite(byte[] b, int off, int len)voidwrite(int b)-
Methods inherited from class com.sun.mail.util.CRLFOutputStream
write, writeln
-
Methods inherited from class java.io.FilterOutputStream
close
-
Methods inherited from class java.io.OutputStream
nullOutputStream
-
-
-
-
Constructor Detail
-
SMTPOutputStream
public SMTPOutputStream(OutputStream os)
-
-
Method Detail
-
write
public void write(int b) throws IOException- Overrides:
writein classCRLFOutputStream- Throws:
IOException
-
write
public void write(byte[] b, int off, int len) throws IOException- Overrides:
writein classCRLFOutputStream- Throws:
IOException
-
flush
public void flush()
Override flush method in FilterOutputStream. The MimeMessage writeTo method flushes its buffer at the end, but we don't want to flush data out to the socket until we've also written the terminating "\r\n.\r\n". We buffer nothing so there's nothing to flush. We depend on the fact that CRLFOutputStream also buffers nothing. SMTPTransport will manually flush the socket before reading the response.- Specified by:
flushin interfaceFlushable- Overrides:
flushin classFilterOutputStream
-
ensureAtBOL
public void ensureAtBOL() throws IOExceptionEnsure we're at the beginning of a line. Write CRLF if not.- Throws:
IOException- if the write fails
-
-