Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ma_finish_delivery(3xma) — MAILbus 400 2.0C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

ma_finish_delivery(3xma)  —  Subroutines

(c) Digital Equipment Corporation. 1994. All rights reserved. 

Name

ma_finish_delivery − Concludes the delivery in progress in a session. 

Syntax

OM_return_code = ma_finish_delivery (session, delivery_confirmations, non_delivery_reports)

Argument Data Type Access
session OM_private_object read only
delivery_confirmations OM_object read only
non_delivery_reports OM_object read only
return_code OM_return_code

C Binding

OM_return_code ma_finish delivery (session, delivery_confirmations, non_delivery_reports) OM_private_object session;
OM_object delivery_confirmations;
OM_object non_delivery_reports;

Arguments

SessionAn established MA session between the Client and the Service, in which a delivery is in progress; an instance of the Session class. 

Delivery Confirmations
One or more delivery confirmations for the users to which the message was delivered; an instance of the Local Delivery Confirmations class.

This argument may be omitted. 

You should indicate the absence of this argument by using a null pointer. 

Non Delivery ReportsIndicates the user or users to which the message cannot be delivered, or the user to whom the report cannot be delivered; an instance of the Local NDR class. 

Omit this argument if there are no such users. 

The argument’s absence is indicated by the null pointer. 

Description

 
This routine concludes the delivery in progress in a session. If there is no delivery in progress, the routine returns a No Such Object error.

If the object is a message, the Client should supply non-delivery reports to indicate the users to whom the message is non-deliverable.  The Client may optionally supply delivery confirmations for users to whom a message was successfully delivered. If the object is a report, the non-delivery reports should indicate a single user to whom the report is non-deliverable. 

If the Client does not confirm delivery or non-delivery for all of the recipients on a message, the Service assumes that the message has been delivered to the recipients not covered by a delivery confirmation or non-delivery report. 

If the object is a message, the Client should indicate those users to whom the message is temporarily, rather than permanently, non-deliverable. If the object is a report, the Client should indicate a single user to whom the report is temporarily non-deliverable. The Client must define the circumstances that cause temporary non-deliverability. (The Service accepts any circumstances as causes of temporary failure.) 

If the object is a message, the Service:

•Issues delivery reports for the users to whom the message has been delivered, and considers that it has transferred responsibility for the message to the Client. 

•Issues non-delivery reports for the users to whom the message is permanently non-deliverable. 

•Marks the message as unavailable, for a period of ten minutes, for the users who are temporarily unable to accept delivery. After ten minutes have elapsed, the message is returned to the Delivery queue and marked as unreserved. 

If the object is a report and is temporarily non-deliverable to the user, the Service returns the report to the delivery queue. If the user takes delivery of the report then the Service considers that it has transferred responsibility for the report to the Client. 

Return Values

MH_RC_FEATURE_UNAVAILABLE

OM_MEMORY_INSUFFICIENT

OM_NETWORK_ERROR

OM_NO_SUCH_OBJECT

OM_NOT_PRESENT

MH_RC_SESSION_NOT_BUSY

OM_SUCCESS

OM_SYSTEM_ERROR

MH_RC_WRONG_CLASS

Plus errors returned from:

om_create

om_instance

om_put

Examples

 
This example shows the calls for both Start Delivery and Finish Delivery. In practice, an application would not call Finish Delivery until it had saved a complete copy of the message to disk.

The NULL arguments in the call to Finish Delivery indicate to the MTA that delivery was successful, and that the MTA should generate delivery reports if required. 
 
    om_status = ma_start_delivery (session, &delivered_object);
    om_status = ma_finish_delivery (session, NULL, NULL);

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026