All notable changes to this project are documented in this file.
The format follows Keep a Changelog, and this project follows Semantic Versioning.
0.3.0 - 2026-03-25
- Added OAuth2 integration test toggle and token placeholders in
.env.example - Added optional OAuth2 live integration scenario in
tests/Integration.test.ts - Added strict auth config validation test coverage in
tests/utils/Config.test.ts - Added custom header security unit tests in
tests/smtp/Message.test.ts - Added SMTP config options for DKIM signing and connection pooling
- Added structured SMTP send result type with envelope and recipient status fields
- Added transfer-encoding unit tests for
base64,quoted-printable, and7bitpayload behavior
- Updated
README.mdandUSAGE.mdto document explicit auth type configuration - Updated SMTP auth flow to support XOAUTH2 for OAuth2 credentials
- Updated SMTP config validation to enforce explicit auth discriminator
- Updated auth and config types to discriminated union structure
- Updated SMTP message header handling with strict validation in
src/smtp/Message.ts - Updated transporter flow to support pooled SMTP client reuse
- Updated SMTP client send flow to return structured delivery metadata
- Updated SMTP command response parsing to handle multiline server responses reliably
- Updated SMTP connection handshake to use
EHLOand re-sendEHLOafter STARTTLS upgrade - Updated STARTTLS negotiation to require advertised capability on submission flow
- Updated SMTP DATA payload sending to apply CRLF normalization and RFC 5321 dot-stuffing
- Updated attachment and embedded image encoding logic to match declared transfer encoding
- Updated
srcJSDoc style for consistency (index.ts,Types.ts,utils,smtp) - Reordered
tests/smtp/Message.test.tscase names alphabetically
- Renamed
@utilsexports fromisValid*style tovalidate*:validateEmailAttachment,validateEmbeddedImage,validateSmtpConfig,validateContentId,validateMailboxAddress - Renamed SMTP DATA preparation helper
toSmtpSafeDataStreamtoencodeSmtpData - Renamed
SmtpAddress.formatAddressForHeadertoSmtpAddress.formatForHeader - Removed implicit auth shape without
auth.type - Replaced previous auth credential model with explicit variants:
type: 'password'withuserandpass,type: 'oauth2'withuserandaccessToken - Disallowed overriding reserved SMTP headers via
message.headers - Rejected custom headers containing invalid names or CRLF line breaks
- Changed
EmailSender.send()return type fromPromise<void>toPromise<SmtpSendResult>
0.2.0 - 2026-03-24
- Added test suite under
tests/covering: SMTP address parsing, SMTP connection behavior, SMTP message formatting, calendar formatting, and utility validation helpers - Added integration test coverage for real SMTP send flows: plain text, HTML, attachments, embedded images, calendar invite, mixed recipients, custom headers, and secure TLS transport
- Added test environment setup examples in
README.mdusing.envand shell exports - Added dedicated CI workflow at
.github/workflows/ci.ymlfor check and test - Added
.env.exampletemplate for integration credentials and secure-test toggle
- Expanded
USAGE.mdwith attachment encoding options (base64,7bit,quoted-printable) and embedded image disposition options (inline,attachment) - Updated
.gitignorefor env and local build artifacts - Updated
README.mdfeatures and testing section with env-based integration flow - Updated README badge to use CI workflow status
- Updated
deno.jsonversion to0.2.0 - Updated
deno task testto include net and env permissions
- Renamed SMTP public symbols:
AddressParsertoSmtpAddress,CalendarFormattertoSmtpCalendar,ConnectionManagertoSmtpConnection,MessageFormattertoSmtpMessage - Renamed SMTP module files:
SmtpAuth.tstoAuth.ts,SmtpClient.tstoClient.ts,SmtpCommand.tstoCommand.ts - Renamed utility module file:
ContentId.tstoContent.ts - Switched root type re-export to
export type *insrc/index.ts
0.1.0 - 2025-10-22
- Initial public release of
@neabyte/deno-mailer - SMTP email client with transporter API and message sender interface
- Core email capabilities: plain text, HTML, mixed body, and custom headers
- Flexible recipient handling for string, object, and mixed address formats
- Attachment and embedded image support with MIME multipart formatting
- Calendar invite support through generated iCalendar payloads
- SMTP connection flow with STARTTLS and TLS transport options
- SMTP authentication support with LOGIN and PLAIN mechanisms
- Utility modules for SMTP config, attachment, content-id, and email validation
- JSR publish workflow and package metadata setup
- Refactored SMTP modules to align naming and documentation
- Refactored utility modules to unify imports and content helper naming
- Updated docs split between
README.mdandUSAGE.md - Updated
@std/assertdependency import version