<div>
<div class="row">
<div class="col-xs-12 col-sm-11 col-md-9 retro-col-12">
<div class="row">
<!-- summary -->
<div class="col-sm-4 col-md-4 pull-right hidden-xs">
<div class="section">
<ng-include src="resourcesPanelTemplate"></ng-include>
</div>
</div>
<!-- / summary -->
<!-- manage domain -->
<div class="col-xs-12 col-sm-8 col-md-8">
<form>
<div class="panel panel-default">
<div class="panel-heading">
<div class="widget-title">
[% locale.maketext('Manage The Domain')%]
</div>
</div>
<div class="panel-body">
<div class="form-group">
<div class="row">
<div class="col-xs-12">
<label id="lblEmail" for="lblEmailAccount">
[% locale.maketext('Domain') %]
</label>
</div>
<div class="col-xs-12">
<span id="lblEmailAccount" class="wordbreak">
{{currentDomain.domain | htmlSafeString}}
</span>
</div>
</div>
</div>
<div class="form-group" ng-if="currentDomain.recordsLoaded && ptrServerName != currentDomain.domain && !skipPTRLookups">
<div class="row">
<div class="col-xs-12">
<toggle-label-info
for="MailHeloDescriptor"
label-text="[% locale.maketext('Mail [asis,HELO]') %]"
label-id="lblMailHeloDescriptor"
info-icon-id="icoMailHeloDescriptor"
info-block-id="txtMailHeloDescriptor"
show-info-block="{{showAllHelp}}">
[% locale.maketext('The name by which the server identifies itself when sending mail from “[_1]”.', '{{currentDomain.domain | htmlSafeString}}') %]
</toggle-label-info>
</div>
<div class="col-xs-12">
<span id="lblHelo" class="wordbreak">
{{ ptrServerName | htmlSafeString }}
</span>
</div>
</div>
</div>
<cp-loading-panel ng-if="!currentDomain.recordsLoaded" id="loadingDomainStatus">[% locale.maketext('Loading …') %]</cp-loading-panel>
<div ng-if="currentDomain.recordsLoaded">
[%# DKIM %]
<section class="form-section">
<h4 class="widget-title">
DKIM
<span record-status class="pull-right" id="dkimRecordStatus" records="['dkim']" domain="currentDomain"></span>
</h4>
[%# NS Error %]
<div ng-if="errors.dkim" callout callout-type="danger">
<p>{{ errors.dkim }}</p>
</div>
[%# / NS Error %]
<div ng-if="!errors.dkim && !localDKIMExists()">
<div callout callout-type="warning" callout-heading="[% locale.maketext('Warning:') %]" role="alert">
<p>[% locale.maketext("A [asis,DKIM] key for “[_1]” does not exist on the local server.", "{{ currentDomain.domain | htmlSafeString}}") %]</p>
<button cp-action="ensureLocalDKIMKeyExists()" class="btn btn-sm btn-primary">
[% locale.maketext("Generate Local [asis,DKIM] Key") %]
</button>
</div>
</div>
<div ng-if="!errors.dkim && localDKIMExists()">
[%# Invalid %]
<div ng-if="!isRecordValid('dkim')">
[%# Authoritative %]
<div>
<p ng-bind-html="badConfigurationMessage('dkim', currentDomain.domain)"></p>
<p>[% locale.maketext("To properly configure your [output,acronym,DKIM,DomainKeys Identified Mail] key, the record [output,strong,must] use this server’s [output,acronym,DKIM,DomainKeys Identified Mail] key.") %]</p>
[%# Not Authoritative %]
<div callout callout-type="warning" ng-if="!hasNSAuthority('dkim')">
<p ng-bind-html="noAuthorityMessage('dkim')"></p>
</div>
[%# / Not Authoritative %]
<suggested-record-set id="dkimSuggestedRecordSet" splitable="true" record-type="dkim" record-zone-type="TXT" domain="currentDomain"></suggested-record-set>
<button ng-disabled="showConfirmDKIM" ng-click="toggleShowConfirmDKIM()" class="btn btn-sm btn-primary" >
[% locale.maketext("Install the Suggested Record") %]
</button>
[%# Other DKIM Warning %]
<div callout callout-type="danger" callout-heading="[% locale.maketext('Danger:') %]" role="alert" ng-show="showConfirmDKIM">
<p>[% locale.maketext("If you send email from another server, you [output,strong,must] use this server’s [output,acronym,DKIM,DomainKeys Identified Mail] key on the remote server.") %]</p>
<button cp-action="repairRecord('dkim')" class="btn btn-sm btn-primary">
[% locale.maketext("Install the Suggested Record") %]
</button>
<button ng-click="toggleShowConfirmDKIM()" class="btn btn-sm btn-secondary">
[% locale.maketext("Cancel") %]
</button>
</div>
[%# / Other DKIM Warning %]
</div>
[%# / Authoritative %]
</div>
[%# / Invalid %]
[%# Valid %]
<div ng-if="isRecordValid('dkim')" >
<p ng-bind="validRecordMessage('dkim', currentDomain.domain)"></p>
<suggested-record-set id="dkimSuggestedRecordSet" splitable="true" record-type="dkim" record-zone-type="TXT" domain="currentDomain"></suggested-record-set>
</div>
[%# / Valid %]
</div>
</section>
[%# / DKIM %]
[%# SPF %]
<section class="form-section">
<h4 class="widget-title">
[% locale.maketext("SPF") %]
<span record-status class="pull-right" id="spfRecordStatus" records="['spf']" domain="currentDomain"></span>
</h4>
[%# NS Error %]
<div ng-if="errors.spf" callout callout-type="danger">
<p>{{ errors.spf }}</p>
</div>
[%# / NS Error %]
[%# Invalid %]
<div ng-if="!errors.spf && !isRecordValid('spf')">
<div>
<p ng-bind-html="badConfigurationMessage('spf', currentDomain.domain)"></p>
[%# Other SPF Warning %]
<div>
<p>[% locale.maketext("To properly configure your [output,abbr,SPF,Sender Policy Framework] record, you [output,strong,must] include the following mechanisms:") %] <pre ng-bind="currentDomain.getExpectedMatch('spf')"></pre></p>
[%# Not Authoritative %]
<div callout callout-type="warning" ng-if="!hasNSAuthority('spf')">
<p ng-bind-html="noAuthorityMessage('spf')"></p>
</div>
[%# / Not Authoritative %]
<suggested-record-set id="spfSuggestedRecordSet" record-type="spf" record-zone-type="TXT" domain="currentDomain"></suggested-record-set>
<button cp-action="repairRecord('spf')" class="btn btn-sm btn-secondary">
[% locale.maketext("Install the Suggested Record") %]
</button>
</div>
[%# / Other SPF Warning %]
</div>
</div>
[%# / Invalid %]
[%# Valid %]
<div ng-if="isRecordValid('spf')" >
<p ng-bind="validRecordMessage('spf', currentDomain.domain)"></p>
<suggested-record-set id="spfSuggestedRecordSet" record-type="spf" record-zone-type="TXT" domain="currentDomain"></suggested-record-set>
</div>
[%# / Valid %]
</section>
[%# / SPF %]
[%# DMARC %]
<section class="form-section">
<h4 class="widget-title">
[% locale.maketext("DMARC") %]
<span record-status class="pull-right" id="dmarcRecordStatus" records="['dmarc']" domain="currentDomain"></span>
</h4>
[%# NS Error %]
<div ng-if="errors.dmarc" callout callout-type="danger">
<p>{{ errors.dmarc }}</p>
</div>
[%# / NS Error %]
[%# Invalid %]
<div ng-if="!errors.dmarc && !isRecordValid('dmarc')">
<div>
<p ng-bind-html="badConfigurationMessage('dmarc', currentDomain.domain)"></p>
[%# Other DMARC Warning %]
<div>
<p>[% locale.maketext("For DMARC to work correctly, your domain [output,strong,must] have valid [output,abbr,SPF,Sender Policy Framework] and [output,acronym,DKIM,DomainKeys Identified Mail] records. Use the following default policy to add a basic DMARC policy to your domain:") %]</p>
[%# Not Authoritative %]
<div callout callout-type="warning" ng-if="!hasNSAuthority('dmarc')">
<p ng-bind-html="noAuthorityMessage('dmarc')"></p>
</div>
[%# / Not Authoritative %]
<suggested-record-set id="dmarcSuggestedRecordSet" record-type="dmarc" record-zone-type="TXT" domain="currentDomain"></suggested-record-set>
<button cp-action="repairRecord('dmarc')" class="btn btn-sm btn-secondary">
[% locale.maketext("Install the Suggested Record") %]
</button>
</div>
[%# / Other DMARC Warning %]
</div>
</div>
[%# / Invalid %]
[%# Valid %]
<div ng-if="isRecordValid('dmarc')" >
<p ng-bind="validRecordMessage('dmarc', currentDomain.domain)"></p>
<suggested-record-set id="dmarcSuggestedRecordSet" record-type="dmarc" record-zone-type="TXT" domain="currentDomain"></suggested-record-set>
</div>
[%# / Valid %]
</section>
[%# / DMARC %]
[%# PTR %]
<section class="form-section" ng-if="ptrServerName && !skipPTRLookups">
<h4 class="widget-title">
[% locale.maketext("Reverse [asis,DNS] ([asis,PTR])") %]
<span record-status class="pull-right" id="ptrRecordStatus" records="['ptr']" domain="currentDomain"></span>
</h4>
<div callout callout-type="info" ng-if="!errors.ptr && ptrServerName != currentDomain.domain">
<p>
[% locale.maketext("The system uses an alternate [asis,HELO] of “[_1]” when sending mail from the “[_2]” domain.", "{{ ptrServerName | htmlSafeString }}", "{{ currentDomain.domain | htmlSafeString }}") %]
</p>
</div>
[%# NS Error %]
<div ng-if="errors.ptr" callout callout-type="danger">
<p>{{ errors.ptr }}</p>
</div>
[%# / NS Error %]
[%# Invalid %]
<div ng-if="!errors.ptr && !isRecordValid('ptr')">
[%# Not Authoritative %]
<div callout callout-type="warning">
<div ng-if="ptrStatusCode === 'IP_IS_PRIVATE'">
<p>
[% locale.maketext('The system sends this domain’s outgoing mail from a private [asis,IP] address, “[_1]”. Reverse [asis,DNS] does not work with private [asis,IP] addresses because [asis,DNS] does not store [asis,PTR] records for them.', '{{ptrServerIP}}') %]
</p>
<p>
[% locale.maketext('The server may be misconfigured.') %]
<span ng-if="isWhm">[% locale.maketext('Ensure that this server’s [asis,IP] configuration, including the [output,acronym,NAT,Network Address Translation] configuration, is correct.') %]</span>
<span ng-if="!isWhm">[% locale.maketext('For more information, contact your system administrator.') %]</span>
</p>
</div>
<div ng-if="ptrStatusCode !== 'IP_IS_PRIVATE'">
<p ng-repeat="msg in badPTRMessages" ng-bind-html="msg"></p>
<ul ng-if="badPTRNames">
<li ng-repeat="name in badPTRNames | orderBy" ng-bind="name"></li>
</ul>
<p ng-bind-html="ptrToFixMessage"></p>
<suggested-record-set ng-if="ptrStatusCode !== 'PTR_MISMATCH'" id="ptrSuggestedRecordSet" record-type="ptr" record-zone-type="PTR" domain="currentDomain"></suggested-record-set>
</div>
</div>
[%# / Not Authoritative %]
</div>
[%# / Invalid %]
[%# Valid %]
<div ng-if="isRecordValid('ptr')">
<p ng-bind="validRecordMessage('ptr', currentDomain.domain)"></p>
<suggested-record-set id="ptrSuggestedRecordSet" record-type="ptr" record-zone-type="PTR" domain="currentDomain"></suggested-record-set>
</div>
[%# / Valid %]
</section>
[%# / PTR %]
</div>
</div>
<div class="panel-footer" style="text-align:right" ng-if="canReturnToLister">
<a id="btnCancelUpdate"
type="button"
class="btn btn-link"
href="#/"
title="[% locale.maketext('Return to the List of Domains.') %]">
<i class="fas fa-arrow-left" aria-hidden="true"></i>
[% locale.maketext('Go Back') %]
</a>
</div>
</div>
</form>
</div>
<!-- / manage domain -->
<!-- summary -->
<div class="col-xs-12 hidden-sm hidden-lg hidden-md">
<div class="section">
<ng-include src="resourcesPanelTemplate"></ng-include>
</div>
</div>
<!-- / summary -->
</div>
</div>
</div>
</div>
Back to Directory