Passer de @nestjs-modules/mailer 3.x à 4.x
Comparaison de l’API publique de @nestjs-modules/mailer 3.0.2 et 4.0.0, calculée automatiquement à partir de leurs types TypeScript. Une signature modifiée est un changement incompatible possible, pas une certitude.
Résumé
| Chemins d’importation supprimés | 0 |
|---|---|
| Exports supprimés | 0 |
| Signatures modifiées | 0 |
| Membres de classes ou d’interfaces supprimés | 1 |
| Membres de classes ou d’interfaces modifiés | 3 |
| Nouvelles dépréciations | 0 |
| Changements d’exigences (engines, dépendances peer) | 3 |
| Nouveaux exports | 64 |
Exports supprimés
Aucun détecté.
Signatures modifiées
Aucun détecté.
Membres de classes ou d’interfaces supprimés
| member | import | Avant |
|---|---|---|
MailerService.executeSend | @nestjs-modules/mailer | any |
Membres de classes ou d’interfaces modifiés
| member | Avant | Après |
|---|---|---|
MailerService.constructor | (mailerOptions: MailerOptions, transportFactory: MailerTransportFactory, eventService?: MailerEventService | undefined): MailerService | (mailerOptions: MailerOptions, transportFactory?: MailerTransportFactory | undefined, eventService?: MailerEventService | undefined, moduleRef?: any): MailerService |
MailerTestModule.static register | (options?: Partial<{ template: { dir?: string | undefined; adapter?: any; options?: any; }; }> | undefined): DynamicModule | (options?: Omit<MailerOptions, "transport" | "transports"> | undefined): DynamicModule |
MailerEventService.constructor | (eventEmitter?: any): MailerEventService | (eventEmitter?: MailerEventEmitter | undefined, moduleRef?: any): MailerEventService |
Nouvelles dépréciations
Aucun détecté.
Changements d’exigences (engines, dépendances peer)
| Avant | Après | |
|---|---|---|
peerDependencies.handlebars | >=4.7.9 | >=4.7.10 |
peerDependencies.@nestjs/mail | — | >=0.0.1 |
peerDependencies.@nestjs/outbox | — | >=0.1.3 |
Nouveaux exports (64)
| import | export | kind |
|---|---|---|
@nestjs-modules/mailer | html | function |
@nestjs-modules/mailer | signV4 | function |
@nestjs-modules/mailer | Mailable | interface |
@nestjs-modules/mailer | SafeHtml | class |
@nestjs-modules/mailer | MailQuery | interface |
@nestjs-modules/mailer | htmlToText | function |
@nestjs-modules/mailer | isSafeHtml | function |
@nestjs-modules/mailer | unsafeHtml | function |
@nestjs-modules/mailer | MailerError | class |
@nestjs-modules/mailer | TestMailbox | class |
@nestjs-modules/mailer | CapturedMail | class |
@nestjs-modules/mailer | LogTransport | class |
@nestjs-modules/mailer | MailableData | type |
@nestjs-modules/mailer | RenderedMail | interface |
@nestjs-modules/mailer | SesTransport | class |
@nestjs-modules/mailer | SigV4Options | interface |
@nestjs-modules/mailer | SigV4Request | interface |
@nestjs-modules/mailer | FileTransport | class |
@nestjs-modules/mailer | MailerPreview | type |
@nestjs-modules/mailer | toMailerError | function |
@nestjs-modules/mailer | AwsCredentials | interface |
@nestjs-modules/mailer | BrevoTransport | class |
@nestjs-modules/mailer | SigV4Signature | interface |
@nestjs-modules/mailer | LOCAL_TRANSPORT | variable |
@nestjs-modules/mailer | MailableContent | type |
@nestjs-modules/mailer | MailableContext | interface |
@nestjs-modules/mailer | MailerSmtpError | class |
@nestjs-modules/mailer | ResendTransport | class |
@nestjs-modules/mailer | parseRetryAfter | function |
@nestjs-modules/mailer | validateMessage | function |
@nestjs-modules/mailer | InterceptOptions | interface |
@nestjs-modules/mailer | MailgunTransport | class |
@nestjs-modules/mailer | isTransientError | function |
@nestjs-modules/mailer | MailerEventRecord | interface |
@nestjs-modules/mailer | PostmarkTransport | class |
@nestjs-modules/mailer | SendGridTransport | class |
@nestjs-modules/mailer | mailerChannelName | function |
@nestjs-modules/mailer | MailerEventEmitter | interface |
@nestjs-modules/mailer | MailerMessageError | class |
@nestjs-modules/mailer | MailerRetryOptions | interface |
@nestjs-modules/mailer | MailerTimeoutError | class |
@nestjs-modules/mailer | UnsubscribeOptions | interface |
@nestjs-modules/mailer | HttpSentMessageInfo | interface |
@nestjs-modules/mailer | LogTransportOptions | interface |
@nestjs-modules/mailer | MailableSendOptions | type |
@nestjs-modules/mailer | MailerPreviewModule | class |
@nestjs-modules/mailer | MailerProviderError | class |
@nestjs-modules/mailer | MailerTemplateError | class |
@nestjs-modules/mailer | SesTransportOptions | interface |
@nestjs-modules/mailer | FileTransportOptions | interface |
@nestjs-modules/mailer | HttpTransportOptions | interface |
@nestjs-modules/mailer | MAILER_EVENT_EMITTER | variable |
@nestjs-modules/mailer | MailerPreviewOptions | interface |
@nestjs-modules/mailer | mayHaveBeenDelivered | function |
@nestjs-modules/mailer | BrevoTransportOptions | interface |
@nestjs-modules/mailer | HttpProviderTransport | class |
@nestjs-modules/mailer | MailerConnectionError | class |
@nestjs-modules/mailer | SuppressedMessageInfo | interface |
@nestjs-modules/mailer | MAILER_PREVIEW_OPTIONS | variable |
@nestjs-modules/mailer | ResendTransportOptions | interface |
@nestjs-modules/mailer | MailgunTransportOptions | interface |
@nestjs-modules/mailer | PostmarkTransportOptions | interface |
@nestjs-modules/mailer | SendGridTransportOptions | interface |
@nestjs-modules/mailer | MailerRecipientsRejectedError | class |
Changelog entre ces versions
Texte publié par les auteurs du paquet, affiché tel quel.
4.0.0
### Major Changes
- [#1353](https://github.com/nest-modules/mailer/pull/1353) [`c8c0423`](https://github.com/nest-modules/mailer/commit/c8c0423749bd8f0f7d0f247e62ee5ab7a55f6535) Thanks [@juandav](https://github.com/juandav)! - v4: everything the official `@nestjs/mail` offers and more, without dropping anything v3 supports. Every capability is optional: use nodemailer, the built-in HTTP providers or `@nestjs/mail`'s transports; send directly, through BullMQ or through `@nestjs/outbox`; call `sendMail`, mail classes or the official `Mailer` over this module.
**Breaking changes** (see the [migration guide](https://nest-modules.github.io/mailer/guide/migration)):
- Transient failures are retried by default (3 attempts with backoff); `retry: false` restores v3. A timeout or a dropped connection while the message was being handed over is retried only when the email has a stable Message-ID (`idempotencyKey`), so nothing is sent twice. `sendTimeout` applies per attempt.
- Errors from transports are typed (`MailerSmtpError`, `MailerTimeoutError`, … all `MailerError`), keeping nodemailer's fields and the original as `cause`; `wrapErrors: false` restores v3.
- Emails without a text part get one derived from the HTML (`textFromHtml: false` to opt out), and messages are validated before sending (`validate: false` to opt out).
- `MailerTestModule` delivers to a `TestMailbox` (no stream transport; `info.message` uses CRLF line endings) and defaults `retry` to `false`.
- `MailerPreviewModule` is on by default only when `NODE_ENV` is `development` or `test`.
- Event payloads carry `attempt`, `permanent`, `transporterName` and `durationMs`; `MailerEventService` takes its emitter through `MAILER_EVENT_EMITTER`, and `EventEmitter2` is found automatically (in v3 it was never injected).
- `MailableContext.to` is `{ name?, address }[]`, the same shape as `@nestjs/mail`.
**New**
- Mail classes (`mailerService.send(WelcomeMail, { to, data })`) compatible with `@nestjs/mail`'s, with dependencies resolved from the whole app, and `render()` to render without sending.
- Retries with backoff and error classification (nodemailer, HTTP and AWS SDK errors), failover between transporters, `AbortSignal`, `idempotencyKey`, and graceful shutdown that waits for sends in flight (`shutdownTimeout`).
- Zero-dependency HTTP transports: Resend, Postmark, SendGrid, SES (SigV4), Mailgun and Brevo.
- The `html` tagged template (`unsafeHtml()` for trusted markup), `htmlToText()` and message validation.
- `intercept` (redirect recipients in staging), `suppress` (suppression lists) and one-click `unsubscribe` (RFC 8058).
- `TestMailbox` with assertions, `FileTransport` and `LogTransport` (with a warning when used in production) and `MailerPreviewModule` to preview emails in the browser.
- `events$`, `node:diagnostics_channel` publishing (credentials redacted), and `RETRY`, `FAILOVER` and `SUPPRESSED` events.
- BullMQ: permanent failures fail the jDonnez ces données à votre agent IA
Vigia est un serveur MCP gratuit : votre agent de code vérifie les versions, les changements incompatibles et les vulnérabilités avant d'écrire du code. Sans inscription ni clé d'API.
claude mcp add --transport http vigia https://vigia.coredls.cloud/mcp
Ajouter à CursorAjouter à VS Code★ Étoile sur GitHub
Tout autre client MCP
{ "mcpServers": { "vigia": { "url": "https://vigia.coredls.cloud/mcp" } } }Skill pour agents (SKILL.md) : indique à l'agent quand utiliser Vigia · GitHub Action pour les pull requests
Questions fréquentes
Quels sont les changements incompatibles en passant de @nestjs-modules/mailer 3 à 4 ?
Entre @nestjs-modules/mailer 3.0.2 et 4.0.0, Vigia a trouvé 0 exports supprimés, 0 signatures modifiées et 4 membres de classes ou d’interfaces supprimés ou modifiés.
Qu’est-ce qui a été déprécié dans @nestjs-modules/mailer 4 ?
0 exports ou membres sont désormais marqués comme dépréciés dans @nestjs-modules/mailer 4.0.0.
Pour les agents
GET https://vigia.coredls.cloud/v1/packages/npm/@nestjs-modules/mailer/upgrade?from=3.0.2&to=4.0.0