%Net.MIMEWriter outputs a MIME document as represented by a top level %Net.MIMEPart
with multiple parts specified.
as %String [ Private,InitialExpression = "device" ];
Destination for %Net.MIMEWriter output.
Possible values are "file", "stream" and "device".
as %RawString [ Private ];
Stream for output to stream or file.
Will store a stream,
but declare as %RegisteredObject to prevent auto create of serial object.
private method %Write(text As %String)
private method AppendToOutput(ByRef out As %String, str As %String)
Append encoded data to output buffer
private method EncodeStreamBase64(stream As %Stream.Object)
Write stream -- base64 encoded
private method EncodeStreamQuotedPrintable(stream As %Stream.Object)
Write stream -- quoted printable encoded
private method OutputNoEncoding(stream As %Stream.Object)
Write stream - not encoded
OutputToDevice sets output to the current device which
is the default if no output method is specified.
method OutputToFile(filename As %String)
OutputToFile sets output to be directed to a
new file, named filename.
The file is created with parameters "WNS".
method OutputToStream(ByRef export As %BinaryStream)
OutputToStream sets output to be directed to a stream.
export is the exported stream.
If export is the oref of a stream, the MIME document will
be written to this existing stream at the current position.
If export is "", then a new %GlobalBinaryStream will be
created to contain the MIME document and its oref returned.
In this case, export must be passed by reference.
private method ProcessLine(line As %String)
Output buffered output
private method WriteBody(message As %Net.MIMEPart)
Write the body.
method WriteHeader(name As %String, value As %String)
Write a header
method WriteMIMEBody(message As %Net.MIMEPart)
WriteMIMEBody outputs the body of a MIME multipart message.
If the messsage is multipart, the caller is expected to output needed headers.
If the message, is not multipart, then headers are output.
method WriteMIMEMessage(message As %Net.MIMEPart)
WriteMIMEMessage outputs a MIME message.
private method WritePart(part As %Net.MIMEPart)
Write a MIME part
private method pad2(n As %String)
Return integer or hex padded to 2 place with leading zeros