A utility for looking up mail exchange hosts and tracking whether they are working or not.
Method | __init__ |
No summary |
Method | get |
Find the name of a host that acts as a mail exchange server for a domain. |
Method | mark |
Record that a mail exchange host is not currently functioning. |
Method | mark |
Record that a mail exchange host is functioning. |
Instance Variable | bad |
A mapping of non-functioning mail exchange hostname to time at which another attempt at contacting it may be made. |
Instance Variable | clock |
A reactor which will be used to schedule timeouts. |
Instance Variable | fallback |
A flag indicating whether to attempt to use the hostname directly when no mail exchange can be found (True) or not (False). |
Instance Variable | resolver |
A resolver. |
Instance Variable | time |
Period in seconds between attempts to contact a non-functioning mail exchange host. |
Method | _cb |
Try to find the mail exchange host for a domain from the given DNS records. |
Method | _eb |
Attempt to use the name of the domain directly when mail exchange lookup fails. |
Method | _filter |
Organize the records of a DNS response by record name. |
Parameters | |
resolver:IResolver provider or None | A resolver. |
clock:IReactorTime provider or None | A reactor which will be used to schedule timeouts. |
Find the name of a host that acts as a mail exchange server for a domain.
Parameters | |
domain:bytes | A domain name. |
maximumint | The maximum number of unique canonical name records to follow while looking up the mail exchange host. |
Returns | |
Deferred which successfully fires with Record_MX | A deferred which succeeds with the MX record for the mail exchange server for the domain or fails if none can be found. |
Record that a mail exchange host is not currently functioning.
Parameters | |
mx:bytes | The hostname of a mail exchange host. |
Record that a mail exchange host is functioning.
Parameters | |
mx:bytes | The hostname of a mail exchange host. |
A mapping of non-functioning mail exchange hostname to time at which another attempt at contacting it may be made.
A flag indicating whether to attempt to use the hostname directly when no mail exchange can be found (True) or not (False).
Try to find the mail exchange host for a domain from the given DNS records.
This will attempt to resolve canonical name record results. It can recognize loops and will give up on non-cyclic chains after a specified number of lookups.
Parameters | |
answers:dict mapping bytes to list of IRecord provider | A mapping of record name to record payload. |
domain:bytes | A domain name. |
cnamesint | The number of unique canonical name records left to follow while looking up the mail exchange host. |
Returns | |
Record_MX or Failure | An MX record for the mail exchange host or a failure if one cannot be found. |
Attempt to use the name of the domain directly when mail exchange lookup fails.
Parameters | |
failure:Failure | The reason for the lookup failure. |
domain:bytes | The domain name. |
Returns | |
Record_MX or Failure | An MX record for the domain or a failure if the fallback to domain option is not in effect and an error, other than not finding an MX record, occurred during lookup. |
Raises | |
IOError | When no MX record could be found and the fallback to domain option is not in effect. |
DNSLookupError | When no MX record could be found and the fallback to domain option is in effect but no address for the domain could be found. |
Organize the records of a DNS response by record name.
Parameters | |
records:3-tuple of (0) list of RRHeader , (1) list of RRHeader , (2) list of RRHeader | Answer resource records, authority resource records and additional resource records. |
Returns | |
dict mapping bytes to list of IRecord provider | A mapping of record name to record payload. |