update: the domain service3

This commit is contained in:
mahyargdz
2025-07-10 16:58:33 +03:30
parent 233370ffb5
commit a350f8af5a
4 changed files with 27 additions and 9 deletions
+10 -8
View File
@@ -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) {