fix(mail): migrate filesystem helpers to fsUtils, update DKIM and mail APIs, harden SMTP client, and bump dependencies
This commit is contained in:
@@ -841,34 +841,29 @@ export class SmtpClient {
|
||||
if (!this.options.dkim?.enabled || !this.options.dkim?.privateKey) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
logger.log('debug', `Signing email with DKIM for domain ${this.options.dkim.domain}`);
|
||||
|
||||
|
||||
// Format email for DKIM signing
|
||||
const { dkimSign } = plugins;
|
||||
const emailContent = await this.getFormattedEmail(email);
|
||||
|
||||
// Sign email
|
||||
const signOptions = {
|
||||
domainName: this.options.dkim.domain,
|
||||
keySelector: this.options.dkim.selector,
|
||||
|
||||
// Sign email with updated mailauth API
|
||||
const signResult = await dkimSign(emailContent, {
|
||||
signingDomain: this.options.dkim.domain,
|
||||
selector: this.options.dkim.selector,
|
||||
privateKey: this.options.dkim.privateKey,
|
||||
headerFieldNames: this.options.dkim.headers || [
|
||||
headerList: this.options.dkim.headers || [
|
||||
'from', 'to', 'subject', 'date', 'message-id'
|
||||
]
|
||||
};
|
||||
|
||||
const signedEmail = await dkimSign(emailContent, signOptions);
|
||||
|
||||
// Replace headers in original email
|
||||
const dkimHeader = signedEmail.substring(0, signedEmail.indexOf('\r\n\r\n')).split('\r\n')
|
||||
.find(line => line.startsWith('DKIM-Signature: '));
|
||||
|
||||
if (dkimHeader) {
|
||||
email.addHeader('DKIM-Signature', dkimHeader.substring('DKIM-Signature: '.length));
|
||||
});
|
||||
|
||||
// Add DKIM-Signature header to email
|
||||
if (signResult.signatures) {
|
||||
email.addHeader('DKIM-Signature', signResult.signatures);
|
||||
}
|
||||
|
||||
|
||||
logger.log('debug', 'DKIM signature applied successfully');
|
||||
} catch (error) {
|
||||
logger.log('error', `Failed to apply DKIM signature: ${error.message}`);
|
||||
|
||||
Reference in New Issue
Block a user