Rohit Sakalle wrote:
>
> Hello sir,
>
>
> Please tell me sir Why the second argument is used
> in local_scan i.e. **return_text. I have already read the document.
> Please give me a specific answer about why it's used.
Straight from the document, a very specific answer about why it's used.
<quote>
* return_text is an address which you can use to return a pointer to a
text string at the end of the function. The value it points to on entry
is NULL.
</quote>
So, when your function returns one of the following macro values and the
message is used as stated. You'll notice that some of them do use
**return_text, and some don't. In the manual it is referred to as "the
return text" or "a string of text".
The CAPITAL_LETTERS are the return values.
<quote>
The function must return an int value which is one of the following macros:
LOCAL_SCAN_ACCEPT
The message is accepted. If you pass back a string of text, it is
saved with the message, and made available in the variable
$local_scan_data. No newlines are permitted (if there are any, they are
turned into spaces) and the maximum length of text is 1000 characters.
LOCAL_SCAN_ACCEPT_FREEZE
This behaves as LOCAL_SCAN_ACCEPT, except that the accepted message
is queued without immediate delivery, and is frozen.
LOCAL_SCAN_ACCEPT_QUEUE
This behaves as LOCAL_SCAN_ACCEPT, except that the accepted message
is queued without immediate delivery.
LOCAL_SCAN_REJECT
The message is rejected; the returned text is used as an error
message which is passed back to the sender and which is also logged.
Newlines are permitted – they cause a multiline response for SMTP
rejections, but are converted to \n in log lines. If no message is
given, “Administrative prohibition” is used.
LOCAL_SCAN_TEMPREJECT
The message is temporarily rejected; the returned text is used as an
error message as for LOCAL_SCAN_REJECT. If no message is given,
“Temporary local problem” is used.
LOCAL_SCAN_REJECT_NOLOGHDR
This behaves as LOCAL_SCAN_REJECT, except that the header of the
rejected message is not written to the reject log. It has the effect of
unsetting the rejected_header log selector for just this rejection. If
rejected_header is already unset (see the discussion of the
log_selection option in section 49.15), this code is the same as
LOCAL_SCAN_REJECT.
LOCAL_SCAN_TEMPREJECT_NOLOGHDR
This code is a variation of LOCAL_SCAN_TEMPREJECT in the same way
that LOCAL_SCAN_REJECT_NOLOGHDR is a variation of LOCAL_SCAN_REJECT.
If the message is not being received by interactive SMTP, rejections are
reported by writing to stderr or by sending an email, as configured by
the -oe command line options.
</quote>
I'm not going to rewrite what is already in the manual.
--
What's the point of having a manual if no one reads it?