GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Qpsmtpd::DSN(3) User Contributed Perl Documentation Qpsmtpd::DSN(3)

Qpsmtpd::DSN - Enhanced Mail System Status Codes - RFC 1893

The Qpsmtpd::DSN implements the Enhanced Mail System Status Codes from RFC 1893.

Any qpsmtpd plugin can access these status codes. All sub routines are used the same way: use Qpsmtpd::DSN; ...; return Qpsmtpd::DSN->relaying_denied();

or

 return Qpsmtpd::DSN->relaying_denied("Relaying from $ip denied");

or

 return Qpsmtpd::DSN->relaying_denied(DENY,"Relaying from $ip denied");

If no status message was given, it will use the predefined one from the RFC. If the first argument is numeric, it will use this as a return code, else the default return code is used. See below which default return code is used in the different functions.

The first example will return (DENY, "Relaying denied"); the others (DENY, "Relaying from $ip denied"); which will be returned to qpsmtpd.

In those sub routines which don't start with addr_, sys_, net_, proto_, media_, sec_ I've added a default message which describes the status better than the RFC message.

addr_unspecified
X.1.0 default: DENYSOFT
no_such_user, addr_bad_dest_mbox
X.1.1 default: DENY
addr_bad_dest_system
X.1.2 default: DENY
addr_bad_dest_syntax
X.1.3 default: DENY
addr_dest_ambigous
X.1.4 default: DENYSOFT
addr_rcpt_ok
X.1.5 default: OK
addr_mbox_moved
X.1.6 default: DENY
addr_bad_from_syntax
X.1.7 default: DENY
addr_bad_from_system
X.1.8 default: DENY

mbox_unspecified
X.2.0 default: DENYSOFT
mbox_disabled
X.2.1 default: DENY ...but RFC says: The mailbox exists, but is not accepting messages. This may be a permanent error if the mailbox will never be re-enabled or a transient error if the mailbox is only temporarily disabled.
mbox_full
X.2.2 default: DENYSOFT
mbox_msg_too_long
X.2.3 default: DENY
mbox_list_expansion_problem
X.2.4 default: DENYSOFT

sys_unspecified
X.3.0 default: DENYSOFT
sys_disk_full
X.3.1 default: DENYSOFT
sys_not_accepting_mail
X.3.2 default: DENYSOFT
sys_not_supported
X.3.3 default: DENYSOFT Selected features specified for the message are not supported by the destination system. This can occur in gateways when features from one domain cannot be mapped onto the supported feature in another.
sys_msg_too_big
X.3.4 default DENY

net_unspecified
X.4.0 default: DENYSOFT
net_directory_server_failed, temp_resolver_failed
X.4.3 default: DENYSOFT
net_system_congested
X.4.5 default: DENYSOFT
net_routing_loop, too_many_hops
X.4.6 default: DENY, but RFC says: A routing loop caused the message to be forwarded too many times, either because of incorrect routing tables or a user forwarding loop. This is useful only as a persistent transient error.

Why do we want to DENYSOFT something like this?

proto_unspecified
X.5.0 default: DENYSOFT
proto_invalid_command
X.5.1 default: DENY
proto_syntax_error
X.5.2 default: DENY
proto_rcpt_list_too_long, too_many_rcpts
X.5.3 default: DENYSOFT
proto_invalid_cmd_args
X.5.4 default: DENY
proto_wrong_version
X.5.5 default: DENYSOFT

media_unspecified
X.6.0 default: DENYSOFT
media_unsupported
X.6.1 default: DENY
media_conv_prohibited
X.6.2 default: DENY
media_conv_unsupported
X.6.3 default: DENYSOFT
media_conv_lossy
X.6.4 default: DENYSOFT

sec_unspecified
X.7.0 default: DENYSOFT
sec_sender_unauthorized, bad_sender_ip, relaying_denied
X.7.1 default: DENY
sec_list_dest_prohibited
X.7.2 default: DENY
sec_conv_failed
X.7.3 default: DENY
sec_feature_unsupported
X.7.4 default: DENY
sec_crypto_failure
X.7.5 default: DENY
sec_crypto_algorithm_unsupported
X.7.6 default: DENYSOFT
sec_msg_integrity_failure
X.7.7 default: DENY
2013-12-17 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.