update: the domain service3
This commit is contained in:
@@ -90,8 +90,8 @@ export class DnsService {
|
||||
|
||||
// MX Record
|
||||
requiredRecords.push({
|
||||
// name: domain.name,
|
||||
name: "@",
|
||||
fullName: domain.name,
|
||||
type: DNSRecordType.MX,
|
||||
value: this.mailServerDomain,
|
||||
priority: 10,
|
||||
@@ -101,8 +101,8 @@ export class DnsService {
|
||||
|
||||
// SPF Record
|
||||
requiredRecords.push({
|
||||
// name: domain.name,
|
||||
name: "@",
|
||||
fullName: domain.name,
|
||||
type: DNSRecordType.TXT,
|
||||
value: this.spfRecord,
|
||||
isRequired: true,
|
||||
@@ -112,8 +112,8 @@ export class DnsService {
|
||||
// DMARC Record
|
||||
const dmarcRecord = `v=DMARC1; p=quarantine; rua=mailto:dmarc@${domain.name}; ruf=mailto:dmarc@${domain.name}`;
|
||||
requiredRecords.push({
|
||||
// name: `_dmarc.${domain.name}`,
|
||||
name: `_dmarc`,
|
||||
fullName: `_dmarc.${domain.name}`,
|
||||
type: DNSRecordType.TXT,
|
||||
value: dmarcRecord,
|
||||
isRequired: true,
|
||||
@@ -125,6 +125,7 @@ export class DnsService {
|
||||
for (const recordData of requiredRecords) {
|
||||
const dnsRecord = this.dnsRecordRepository.create({
|
||||
name: recordData.name!,
|
||||
fullName: recordData.fullName!,
|
||||
type: recordData.type!,
|
||||
value: recordData.value!,
|
||||
domain,
|
||||
@@ -145,9 +146,10 @@ export class DnsService {
|
||||
/**
|
||||
* Create DKIM record
|
||||
*/
|
||||
async createDKIMRecord(domain: Domain, selector: string, dkimName: string, dkimValue: string, wildduckId: string) {
|
||||
async createDKIMRecord(domain: Domain, selector: string, dkimName: string, dkimFullName: string, dkimValue: string, wildduckId: string) {
|
||||
const dkimRecord = this.dnsRecordRepository.create({
|
||||
name: dkimName,
|
||||
fullName: dkimFullName,
|
||||
type: DNSRecordType.TXT,
|
||||
value: dkimValue,
|
||||
domain,
|
||||
@@ -261,7 +263,7 @@ export class DnsService {
|
||||
dnsRecord.errorMessage = error instanceof Error ? error.message : "Unknown error";
|
||||
await this.em.persistAndFlush(dnsRecord);
|
||||
|
||||
this.logger.error(`DNS verification failed for ${dnsRecord.name}:`, error);
|
||||
this.logger.error(`DNS verification failed for ${dnsRecord.fullName}:`, error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -271,7 +273,7 @@ export class DnsService {
|
||||
*/
|
||||
private async verifyTxtRecord(dnsRecord: DnsRecord) {
|
||||
try {
|
||||
const txtRecords = await this.resolveTxt(dnsRecord.name);
|
||||
const txtRecords = await this.resolveTxt(dnsRecord.fullName);
|
||||
const flatRecords = txtRecords.flat();
|
||||
|
||||
// Join all TXT record parts together (handles multi-part TXT records like DKIM)
|
||||
@@ -290,7 +292,7 @@ export class DnsService {
|
||||
*/
|
||||
private async verifyMxRecord(dnsRecord: DnsRecord) {
|
||||
try {
|
||||
const mxRecords = await this.resolveMx(dnsRecord.name);
|
||||
const mxRecords = await this.resolveMx(dnsRecord.fullName);
|
||||
|
||||
return mxRecords.some((mx) => mx.exchange === dnsRecord.value && mx.priority === (dnsRecord.priority || 10));
|
||||
} catch (error) {
|
||||
@@ -304,7 +306,7 @@ export class DnsService {
|
||||
*/
|
||||
private async verifyCnameRecord(dnsRecord: DnsRecord) {
|
||||
try {
|
||||
const cnameRecords = await this.resolveCname(dnsRecord.name);
|
||||
const cnameRecords = await this.resolveCname(dnsRecord.fullName);
|
||||
|
||||
return cnameRecords.includes(dnsRecord.value);
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user