[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: IMAP client sends messages without SMTP



Hello!

Our server and the client support the following extension. The above
text is "google" translation from Russian into English because we
wrote  this internal memo in Russian. Should we edit it to make proper
English,  add  the required formal information and submit it as draft?
At least a pair of software support it.




IMAP SEND

Extension SEND is supported by the servers, which return «SEND» in the
list of capabilities. Extension SEND introduces two new commands: SEND
and UID SEND. Also introduces a new response SEND. SEND command is
allowed only in the Selected State.

SEND Command

Arguments: message set

Data: untagged responses: SEND

Result: OK - send completed
            NO - send failure (e.g. permission denied)
            BAD - command unknown or arguments invalid

SEND command sends message with the specified message sequence
numbers. The addresses of the sender and recipient are taken from the
message headers. This command returns untagged response SEND for each
of these messages.

Example:
C: A003 SEND 1:3
S: * 1 SEND (3001 OK NIL)
S: * 2 SEND (3002 NO ("RCPT TO" "john@xxxxxxx" "550 User not found"))
S: * 3 SEND (3003 OK NIL)
S: A003 OK SEND completed

UID SEND Command

Arguments: message set

Data: untagged responses: SEND

Result: OK - send completed
            NO - send failure (e.g. permission denied)
            BAD - command unknown or arguments invalid

UID SEND command is similar to the SEND, except that instead of messages sequence numbers will have their uids.


SEND Response

Contents: serial number and UID the message and send the result

In response the serial number of the message, its UID and the result of sending the message. If sending fails, the team indicated that caused the error, its arguments and SMTP response.

Example:
S: * 23 SEND (143 OK NIL)
S: * 25 SEND (147 NO ("DATA" "" "452 Insufficient system storage"))


send_command:: = "SEND" SPACE set

send_response:: = seq_num SPACE "SEND" SPACE "(" uid_num SPACE send_result ")"

seq_num:: = nz_number
;; Message sequential number

uid_num:: = nz_number
;; Message UID

send_result:: = ("OK" nil) / ("NO" "(" err_cmd SPACE err_params SPACE err_resp ")")

err_cmd:: = string
;; SMTP command ("MAIL FROM", "RCPT TO", "DATA")

err_params:: = string
;; SMTP command parameters

err_resp:: = string
;; SMTP response


-- 
Best regards,
 Maxim                            mailto:max@xxxxxxxxxxx