The p:send-mail
step sends an email message.
Summary
Input port | Primary | Sequence | Content types |
---|---|---|---|
source | ✔ | ✔ | any |
Output port | Primary | Sequence | Content types |
---|---|---|---|
result | ✔ | application/xml |
Option name | Type | Default value |
---|---|---|
auth | map(xs:string, item()+)? | () |
parameters | map(xs:QName, item()*)? | () |
serialization | map(xs:QName,item()*)? | () |
Errors
Error code | Description |
---|---|
err:XC0159 | It is a dynamic error if any key in the “auth” map is associated with a value that is not an instance of the required type. |
err:XC0160 | It is a dynamic error if any key in the “parameters” map is associated with a value that is not an instance of the required type. |
err:XC0161 | It is a dynamic error if the first document on the source port does not conform to the required format. |
err:XC0162 | It is a dynamic error if the email cannot be send. |
Implementation details
Implementation | Description |
---|---|
Defined | Other key value pairs in “auth” are implementation-defined |
Defined | It is implementation-defined which other key/value pairs in the parameters option are supported. |
Defined | Other key value pairs in “auth” are implementation-defined |
Defined | If no values for “host” or “port” is specified, it it implementation-defined which server and port is used. |
Declaration
<p:declare-step
type
="
p:send-mail
"
>
<p:input
port
="
source
"
sequence
="
true
"
content-types
="
any
"
/>
<p:output
port
="
result
"
content-types
="
application/xml
"
/>
<p:option
name
="
serialization
"
as
="
map(xs:QName,item()*)?
"
/>
<p:option
name
="
auth
"
as
="
map(xs:string, item()+)?
"
/>
<p:option
name
="
parameters
"
as
="
map(xs:QName, item()*)?
"
/>
</p:declare-step>
The first document on the source
port is expected to conform to [XML format for mail]. It is a dynamic error (err:XC0161
) if the first document on the source
port does not conform to the required format. Any additional documents are treated as attachments.
If the mail was send successfully a single c:result
document whose content is “true
” appears on the result
port. It is a dynamic error (err:XC0162
) if the email cannot be send.
The em:content
may contain either text or HTML. To send some other type as the first message body, you must leave the em:content
element out of the first document and supply the body as a second document.
The p:send-mail
step has the following options:
serialization
The
serialization
option is used to control the serialization of documents for constructing the mail. If a document has a “serialization
” document property, the effective value of the serialization options is the union of the two maps, where the entries in the “serialization
” document property take precedence.- auth
If the mail service requires an authentication to send mails, these can be supplied using the
auth
option.The following standard keys are defined:
- username (xs:string)
The username.
- password (xs:string)
The password.
Other key value pairs in “
auth
” are implementation-defined.It is a dynamic error (err:XC0159
) if any key in the “auth
” map is associated with a value that is not an instance of the required type.- parameters
The
parameters
option can be used to supply additional information for constructing and sending mails. A number of parameters are defined in this specification. It is implementation-defined which other key/value pairs in theparameters
option are supported.- send-authorization (xs:boolean)
If the key is associated with
false
no authentication will be used when sending a mail.- host (xs:string)
The SMTP server.
- port (xs:unsignedShort)
The port.
Other key value pairs in “
auth
” are implementation-defined.It is a dynamic error (err:XC0160
) if any key in the “parameters
” map is associated with a value that is not an instance of the required type.If no values for “
host
” or “port
” is specified, it it implementation-defined which server and port is used.
Document properties
No document properties are preserved.
These steps can raise dynamic errors.
[Definition: A dynamic error is one which occurs while a pipeline is being evaluated.] Examples of dynamic errors include references to URIs that cannot be resolved, steps which fail, and pipelines that exhaust the capacity of an implementation (such as memory or disk space). For a more complete discussion of dynamic errors, see Dynamic Errors in XProc 3.0: An XML Pipeline Language.
If a step fails due to a dynamic error, failure propagates upwards until either a p:try
is encountered or the entire pipeline fails. In other words, outside of a p:try
, step failure causes the entire pipeline to fail.
The following errors can be raised by this step:
err:XC0159
It is a dynamic error if any key in the “auth” map is associated with a value that is not an instance of the required type.
See: p:send-mail
err:XC0160
It is a dynamic error if any key in the “parameters” map is associated with a value that is not an instance of the required type.
See: p:send-mail
err:XC0161
It is a dynamic error if the first document on the source port does not conform to the required format.
See: p:send-mail
err:XC0162
It is a dynamic error if the email cannot be send.
See: p:send-mail
A. Conformance
Conformant processors must implement all of the features described in this specification except those that are explicitly identified as optional.
Some aspects of processor behavior are not completely specified; those features are either implementation-dependent or implementation-defined.
[Definition: An implementation-dependent feature is one where the implementation has discretion in how it is performed. Implementations are not required to document or explain how implementation-dependent features are performed.]
[Definition: An implementation-defined feature is one where the implementation has discretion in how it is performed. Conformant implementations must document how implementation-defined features are performed.]
The following features are implementation-defined:
- Other key value pairs in “auth” are implementation-defined See Section 2.1, “p:send-mail”.
- It is implementation-defined which other key/value pairs in the parameters option are supported. See Section 2.1, “p:send-mail”.
- Other key value pairs in “auth” are implementation-defined See Section 2.1, “p:send-mail”.
- If no values for “host” or “port” is specified, it it implementation-defined which server and port is used. See Section 2.1, “p:send-mail”.
B. References
[XML format for mail] Internet Draft: An XML Format for mail and other messages. G. Klyne. Network Working Group, IETF, April 2002.
[XProc 3.1] XProc 3.1: An XML Pipeline Language. Norman Walsh, Achim Berndzen, Gerrit Imsieke and Erik Siegel, editors.
C. Glossary
- dynamic error
A dynamic error is one which occurs while a pipeline is being evaluated.
- implementation-defined
An implementation-defined feature is one where the implementation has discretion in how it is performed. Conformant implementations must document how implementation-defined features are performed.
- implementation-dependent
An implementation-dependent feature is one where the implementation has discretion in how it is performed. Implementations are not required to document or explain how implementation-dependent features are performed.
D. Ancillary files
This specification includes by reference a number of ancillary files.
- steps.xpl
An XProc step library for the declared steps.