Recent Releases of https://github.com/ruby/net-imap
https://github.com/ruby/net-imap - v0.5.13
What's Changed
Fixed
- π Fix
SequenceSet#delete?(num..num)to return set (backport to 0.5) by @nevans in https://github.com/ruby/net-imap/pull/585 - π Fix
SequenceSet#max(n)whencardinality < n <= size(backport to 0.5) by @nevans in https://github.com/ruby/net-imap/pull/586 - π Fix
config.responses_without_block = :frozen_dup(backport to 0.5) by @nevans in https://github.com/ruby/net-imap/pull/588, reported by @yurikoval in https://github.com/ruby/net-imap/issues/581
Documentation
- π Improve rdoc example for
#uid_fetchwithpartialby @nevans in https://github.com/ruby/net-imap/pull/532
Other Changes
- β»οΈ Refactor
Config.versioned_defaultsto reduce merge conflicts (backport to 0.5) by @nevans in https://github.com/ruby/net-imap/pull/584
Miscellaneous
- π¦ Drop digest from Gemfile (workaround for #576, backport to 0.5) by @nevans in https://github.com/ruby/net-imap/pull/591
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.12...v0.5.13
- Ruby
Published by github-actions[bot] 3 months ago
https://github.com/ruby/net-imap - v0.6.2
What's Changed
Fixed
- π Fix
SequenceSet#delete?(num..num)to return set by @nevans in https://github.com/ruby/net-imap/pull/583 - π Fix
#responses()freezing internal arrays by @nevans in https://github.com/ruby/net-imap/pull/587, reported by @yurikoval in https://github.com/ruby/net-imap/issues/581
Full Changelog: https://github.com/ruby/net-imap/compare/v0.6.1...v0.6.2
- Ruby
Published by github-actions[bot] 3 months ago
https://github.com/ruby/net-imap - v0.6.1
What's Changed
Fixed
- π Fix
SequenceSet#max(n)whencardinality < n <= sizeby @nevans in https://github.com/ruby/net-imap/pull/580
Miscellaneous
- β¬οΈ Bump step-security/harden-runner from 2.13.3 to 2.14.0 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/579
Full Changelog: https://github.com/ruby/net-imap/compare/v0.6.0...v0.6.1
- Ruby
Published by github-actions[bot] 3 months ago
https://github.com/ruby/net-imap - v0.6.0
What's Changed
Breaking Changes
- π§ Update default config for
v0.6by @nevans in https://github.com/ruby/net-imap/pull/539responses_without_blockchanged from:warnto:frozen_dupparser_use_deprecated_uidplus_datachanged from:up_to_max_sizetofalse(and is deprecated)parser_max_deprecated_uidplus_data_sizechanged from100to0(and is deprecated)
- π₯ Use psych (>= 5.2.5) for encoding Data objects by @nevans in https://github.com/ruby/net-imap/pull/543
This changes the YAML tag forDatasubclasses fromruby/object:Net::IMAP::DataSubclasstoruby/data:Net::IMAP::DataSubclass. YAML dumped by earliernet-imapversions may not load correctly. Psych >= 5.2.5 is required to dump these objects correctly. - π₯ Require ruby >= 3.2 (drop support for 3.1) by @nevans in https://github.com/ruby/net-imap/pull/538
- π₯β¨ Change
SequenceSet#sizeto count*and repeated numbers by @nevans in https://github.com/ruby/net-imap/pull/564
SequenceSetis used to represent both sorted sets and ordered lists (which may contain duplicates). Members are non-zero UInt32 numbers, but"*"has special meaning as "the number corresponding to the last mailbox entry". So there are four different ways to count the members of aSequenceSet.
Previously,#sizewas an alias for#count. Now it differs in both relevant aspects.*is a unique member*is treated like 2Β³Β² - 1distinct set members #cardinality#countordered list, including duplicates #size#count_with_duplicates - π₯ Remove deprecated UIDPlusData class by @nevans in https://github.com/ruby/net-imap/pull/540
UIDPlusDatawas deprecated by v0.5.6.AppendUIDDataorCopyUIDDatawill always be returned instead. - π₯ Delete deprecated
MessageSetby @nevans in https://github.com/ruby/net-imap/pull/573
MessageSetwas deprecated by v0.5.0. UseSequenceSetinstead. - π₯ Do not include
OpenSSLandOpenSSL::SSLmodules intoNet::IMAPby @nevans in https://github.com/ruby/net-imap/pull/533
This only affects the ability to use OpenSSL constants from theNet::IMAPnamespace. - π₯ Don't set
verify_callbacktoVerifyCallbackProcby @nevans in https://github.com/ruby/net-imap/pull/534
This functionality was never documented and is redundant with theverify_callbackoption.
Deprecated
- Deprecated config options for UIDPlusData in https://github.com/ruby/net-imap/pull/540
Theparser_use_deprecated_uidplus_dataandparser_max_deprecated_uidplus_data_sizeconfig options will be removed in v0.7.0. They are kept for backward compatibility, but they do not affect response parser results. Whenparser_use_deprecated_uidplus_datais changed from the default value (false), deprecation warnings are printed when parsingAPPENDUIDorCOPYUIDresponse codes.
Added
- π Add
when_capabilities_cachedoption forConfig#sasl_irby @nevans in https://github.com/ruby/net-imap/pull/561 Net::IMAP::Configimprovements- π Improve
Config#inspectoutput by @nevans in https://github.com/ruby/net-imap/pull/546 - π Improve
Config#pretty_print(forKernel::pp) by @nevans in https://github.com/ruby/net-imap/pull/547 - π§ Update
Config#inherited?for any number of args by @nevans in https://github.com/ruby/net-imap/pull/552
- π Improve
Net::IMAP::SequenceSetimprovements- β¨ Add
SequenceSet#intersect!for in-place setANDby @nevans in https://github.com/ruby/net-imap/pull/549 - β¨ Add
SequenceSet#xor!for in-place setXORby @nevans in https://github.com/ruby/net-imap/pull/550 - β»οΈ Coalesce entries in
SequenceSet#appendby @nevans in https://github.com/ruby/net-imap/pull/553 - β¨ Add
SequenceSet#normalized?by @nevans in https://github.com/ruby/net-imap/pull/558 - β¨ Add
SequenceSet#cardinalitymethod by @nevans in https://github.com/ruby/net-imap/pull/563 - π₯β¨ Change
SequenceSet#sizeto count*and repeated numbers by @nevans in https://github.com/ruby/net-imap/pull/564
- β¨ Add
Net::IMAP::NumValidatorimprovements- π·οΈ Support
mod-sequence-valzer(RFC4551) inNumValidatorby @nevans in https://github.com/ruby/net-imap/pull/570 - π·οΈ Add
NumValidator.coerce_{type}methods by @nevans in https://github.com/ruby/net-imap/pull/571
- π·οΈ Support
Documentation
- π Improve rdoc example for
#uid_fetchwithpartialby @nevans in https://github.com/ruby/net-imap/pull/532 - π Document SearchResult/ESearchResult compatibility by @nevans in https://github.com/ruby/net-imap/pull/559
- π Minor rdoc formatting fixes by @nevans in https://github.com/ruby/net-imap/pull/560
Other Changes
- π₯ Drop
Datapolyfill by @nevans in https://github.com/ruby/net-imap/pull/541
This was only used for ruby 3.1, which is no longer supported. So this is not considered a breaking change. - β»οΈ Refactor Config.versioned_defaults to reduce merge conflcts by @nevans in https://github.com/ruby/net-imap/pull/544
- Improved
Net::IMAP::SequenceSetperformance- β‘οΈ Don't memoize
SequenceSet#stringon normalized sets by @nevans in https://github.com/ruby/net-imap/pull/554 - β‘ Faster
SequenceSet#normalizewhen frozen by @nevans in https://github.com/ruby/net-imap/pull/556 - β‘οΈ Faster
SequenceSet#full?by @nevans in https://github.com/ruby/net-imap/pull/565 - β‘οΈ Slightly faster
SequenceSet#xorby @nevans in https://github.com/ruby/net-imap/pull/567 - β‘ Avoid allocating arrays for SequenceSet bsearch (β»οΈ extract abstract strategy methods) by @nevans in https://github.com/ruby/net-imap/pull/569
- β»οΈ Rename
SequenceSetinternals by @nevans in https://github.com/ruby/net-imap/pull/562 - β»οΈ Reorganize
SequenceSetinternals by @nevans in https://github.com/ruby/net-imap/pull/568
- β‘οΈ Don't memoize
Miscellaneous
- β Stop using deprecated UIDPlusData in tests by @nevans in https://github.com/ruby/net-imap/pull/542
- β¬οΈ Bump step-security/harden-runner from 2.13.1 to 2.13.2 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/548
- π Fix workflow to deploy RDoc to GitHub pages by @nevans in https://github.com/ruby/net-imap/pull/551
- β¬οΈ Bump actions/checkout from 5 to 6 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/555
- π¦ Update
release.ymlforgithub_actionslabel by @nevans in https://github.com/ruby/net-imap/pull/557 - β¬οΈ Bump step-security/harden-runner from 2.13.2 to 2.13.3 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/566
- π Release 0.6 by @nevans in https://github.com/ruby/net-imap/pull/574
- Workarounds for "Publishing gem fails with digest gem activation failure" issue https://github.com/ruby/net-imap/pull/576
- π¦ Use latest rubygems/bundler to release gem by @nevans in https://github.com/ruby/net-imap/pull/575
- π¦ Drop digest from Gemfile by @nevans in https://github.com/ruby/net-imap/pull/577
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.12...v0.6.0
- Ruby
Published by github-actions[bot] 3 months ago
https://github.com/ruby/net-imap - v0.5.12
What's Changed
TruffleRuby is not (yet) "officially supported" but it seems to work (with a few small caveats). Several tests are still marked as pending, but the rest all pass. #528 protects us from merging PRs that break TruffleRuby and (in some cases) JRuby.
Fixed
- π Fix loading of
net/imapfor JRuby/TruffleRuby by @nevans in https://github.com/ruby/net-imap/pull/530
Miscellaneous
- β Test overriding inherited ::Data methods by @nevans in https://github.com/ruby/net-imap/pull/531
- β Add TruffleRuby to CI by @nevans in https://github.com/ruby/net-imap/pull/528
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.11...v0.5.12
- Ruby
Published by github-actions[bot] 5 months ago
https://github.com/ruby/net-imap - v0.5.11
What's Changed
Added
- β¨ Add
ESearchResult#to_sequence_setby @nevans in https://github.com/ruby/net-imap/pull/511 - β¨ Add
ESearchResult#eachby @nevans in https://github.com/ruby/net-imap/pull/513 - β¨ Add
VanishedData#each, delegated to#uids.each_numberby @nevans in https://github.com/ruby/net-imap/pull/522 - support new
Ractor.shareable_procby @ko1 in https://github.com/ruby/net-imap/pull/525
Fixed
- π Fix
SearchResult#==for LHS with no modseq by @nevans in https://github.com/ruby/net-imap/pull/514
Other Changes
- β¨ Allow
obj.to_sequence_set => nilin try_convert by @nevans in https://github.com/ruby/net-imap/pull/512 - β»οΈ Allow
VanishedData#uidsto beSequenceSet.emptyby @nevans in https://github.com/ruby/net-imap/pull/517 - π₯
Raise
ArgumentErrorfor#fetchwithpartialby @nevans in https://github.com/ruby/net-imap/pull/521
Documentation
- π Fix rdoc call-seq for uid_expunge by @nevans in https://github.com/ruby/net-imap/pull/516
- β
Fix flaky tests with
FakeServer#Connection#closemutex by @nevans in https://github.com/ruby/net-imap/pull/520 - π Add QRESYNC to
#enable(docs only) by @nevans in https://github.com/ruby/net-imap/pull/518
Miscellaneous
- β Organize test files by @nevans in https://github.com/ruby/net-imap/pull/515
- Bump step-security/harden-runner from 2.13.0 to 2.13.1 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/524
New Contributors
- @ko1 made their first contribution in https://github.com/ruby/net-imap/pull/525
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.10...v0.5.11
- Ruby
Published by github-actions[bot] 5 months ago
https://github.com/ruby/net-imap - v0.5.10
What's Changed
Added
- π Update
SequenceSet#inspectformat toNet::IMAP::SequenceSet(#{string})by @nevans in https://github.com/ruby/net-imap/pull/501 - β‘π Abridge
SequenceSet#inspectoutput for more than 512 entries by @nevans in https://github.com/ruby/net-imap/pull/502
Fixed
- π Fix spelling of
\Remotemailbox attr constant by @voxik in https://github.com/ruby/net-imap/pull/509
Documentation
- ππ Fix mistake in
SequenceSet#string=rdoc by @nevans in https://github.com/ruby/net-imap/pull/497 - ππ Fix SequenceSet creation rdoc example output by @nevans in https://github.com/ruby/net-imap/pull/499
Other Changes
- π₯
Improve ArgumentError in
SequenceSet#string=by @nevans in https://github.com/ruby/net-imap/pull/498 - β»οΈ Refactor
SequenceSet#dup,#clone, and#replaceby @nevans in https://github.com/ruby/net-imap/pull/505
Miscellaneous
- β¬οΈ Bump step-security/harden-runner from 2.12.1 to 2.12.2 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/496
- β¬οΈ Bump step-security/harden-runner from 2.12.2 to 2.13.0 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/500
- π Add SequenceSet benchmarks by @nevans in https://github.com/ruby/net-imap/pull/485
- π Fix benchmark data for SequenceSet#normalize by @nevans in https://github.com/ruby/net-imap/pull/503
- β‘ Add vernier profiler for SequenceSet tests and benchmarks by @nevans in https://github.com/ruby/net-imap/pull/504
- β¬οΈ Bump actions/upload-pages-artifact from 3 to 4 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/507
- β¬οΈ Bump actions/checkout from 4 to 5 by @dependabot[bot] in https://github.com/ruby/net-imap/pull/506
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.9...v0.5.10
- Ruby
Published by github-actions[bot] 6 months ago
https://github.com/ruby/net-imap - v0.5.9
What's Changed
Added
- β¨ Add
Net::IMAP::SequenceSet()coercion method by @nevans in https://github.com/ruby/net-imap/pull/490
Fixed
- π Fix
SequenceSet#include?handling of invalid inputs by @nevans in https://github.com/ruby/net-imap/pull/479
Documentation
- ππ Fix SequenceSet documentation errors by @nevans in https://github.com/ruby/net-imap/pull/480
- ππ Fix doc & error msg for SequenceSet coersion by @nevans in https://github.com/ruby/net-imap/pull/483
- π RDoc updates for SequenceSet by @nevans in https://github.com/ruby/net-imap/pull/489
Other Changes
- β»οΈ Short-circuit frozen SequenceSet modifications by @nevans in https://github.com/ruby/net-imap/pull/473
- π Always remove idle response handler after done by @nevans in https://github.com/ruby/net-imap/pull/481
- β»οΈ Move SequenceSet autoload by @nevans in https://github.com/ruby/net-imap/pull/491
- β»οΈ Avoid unnecessary allocation in
SequenceSet[]by @nevans in https://github.com/ruby/net-imap/pull/492 - π§΅ Close socket in
#disconnectbefore waiting for lock & thread join by @nevans in https://github.com/ruby/net-imap/pull/493 - π§΅ Improve synchronization of
connection_statetransitions by @nevans in https://github.com/ruby/net-imap/pull/494
Miscellaneous
- β»οΈ Generate same stringprep tables with ruby 3.4 by @nevans in https://github.com/ruby/net-imap/pull/469
- β CI: Mark ruby head on windows as "experimental" by @nevans in https://github.com/ruby/net-imap/pull/472
- β Update Regexp.linear_time? tests for non-CRuby by @nevans in https://github.com/ruby/net-imap/pull/477
- β Add timeouts to CI workflow by @nevans in https://github.com/ruby/net-imap/pull/478
- β Update ResponseReader, UIDFetchData, DeprecatedClientOptions tests by @nevans in https://github.com/ruby/net-imap/pull/476
- βͺ Revert #472 (β CI: Mark ruby head on windows as "experimental") by @nevans in https://github.com/ruby/net-imap/pull/482
- β Add benchmark to Gemfile to silence warnings by @nevans in https://github.com/ruby/net-imap/pull/486
- β¬οΈ Bump step-security/harden-runner from 2.12.0 to 2.12.1 by @dependabot in https://github.com/ruby/net-imap/pull/488
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.8...v0.5.9
- Ruby
Published by github-actions[bot] 9 months ago
https://github.com/ruby/net-imap - v0.4.22
[!IMPORTANT]
The regression fixed by this release (https://github.com/ruby/net-imap/issues/471) appears to only affect Ruby 3.0.0 through 3.0.2, and only on some platforms. It appears to be fixed by ruby 3.0.3, released 2021-11-24. Ruby 3.0.7 was released on 2024-04-23. Ruby 3.0 has reached its EOL.If you are affected by this issue, upgrading Ruby is much more important than upgrading
net-imap!
What's Changed
Fixed
- βͺ Revert Ractor sharability for config types (v0.4 only) by @nevans in https://github.com/ruby/net-imap/pull/474
Fixes a regression in v0.4.20, reported by by @glaszig and @mumkymikey in https://github.com/ruby/net-imap/issues/471
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.21...v0.4.22
- Ruby
Published by github-actions[bot] 10 months ago
https://github.com/ruby/net-imap - v0.4.21
What's Changed
Fixes
- π Backport SequenceSet bugfixes to v0.4 by @nevans in https://github.com/ruby/net-imap/pull/461
- Backports π Fix
SequenceSet#slicewith range(start...0)by @nevans in https://github.com/ruby/net-imap/pull/456 - Backports π Fix inconsistently frozen
SequenceSet#[]result by @nevans in https://github.com/ruby/net-imap/pull/458 - Backports π Fix
SequenceSet#xorcrash when set is frozen by @nevans in https://github.com/ruby/net-imap/pull/457 - Backports π Fix
SequenceSet#slicewhen length > result size by @nevans in https://github.com/ruby/net-imap/pull/459
- Backports π Fix
Miscellaneous
- β
Backport
SequenceSettests to 0.4 by @nevans in https://github.com/ruby/net-imap/pull/466
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.20...v0.4.21
- Ruby
Published by github-actions[bot] 10 months ago
https://github.com/ruby/net-imap - v0.5.8
What's Changed
Added
- β¨ Add
SequenceSet#min(count)and#max(count)by @nevans in https://github.com/ruby/net-imap/pull/460 - β¨ Add
SequenceSet#aboveandSequenceSet#belowby @nevans in https://github.com/ruby/net-imap/pull/462
Fixed
- π Check for Ractor (for JRuby, TruffleRuby) by @nevans in https://github.com/ruby/net-imap/pull/453, reported by @rammpeter in https://github.com/ruby/net-imap/pull/452
- π Fix
SequenceSet#slicewith range(start...0)by @nevans in https://github.com/ruby/net-imap/pull/456 - π Fix inconsistently frozen
SequenceSet#[]result by @nevans in https://github.com/ruby/net-imap/pull/458 - π Fix
SequenceSet#xorcrash when set is frozen by @nevans in https://github.com/ruby/net-imap/pull/457 - π Fix
SequenceSet#slicewhen length > result size by @nevans in https://github.com/ruby/net-imap/pull/459
Documentation
- π Various
SequenceSetrdoc improvements by @nevans in https://github.com/ruby/net-imap/pull/465
Miscellaneous
- β¬οΈ Bump step-security/harden-runner from 2.11.1 to 2.12.0 by @dependabot in https://github.com/ruby/net-imap/pull/455
- β
Test
SequenceSet#xorand fuzz test all set operations by @nevans in https://github.com/ruby/net-imap/pull/464
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.7...v0.5.8
- Ruby
Published by github-actions[bot] 10 months ago
https://github.com/ruby/net-imap - v0.2.5
[!IMPORTANT]
0.2.5is the final release for the0.2.xrelease series. Please upgrade to a newer version.
What's Changed
π Security
This release backports two features to prevent unbounded memory use: the response_handlers keyword argument to Net::IMAP.new so response handlers can be added before the server can send any responses (https://github.com/ruby/net-imap/pull/442), and the max_response_size config attribute (https://github.com/ruby/net-imap/pull/447, GHSA-j3g3-5qv5-52mj, CVE-2025-43857, reported by @Masamuneee).
[!NOTE]
The defaultmax_response_sizeisnil(unlimited), to avoid backward compatibility issues with secure connections to trusted servers that are well-behaved. It can be configured more conservatively to guard against untrusted servers (for example, connecting to user-provided hostnames). It is the responsibility ofnet-imapusers to configure their client appropriately for the server they are connecting to.
Added
- β¨ Add
response_handlersoption tonew(backport) by @nevans in https://github.com/ruby/net-imap/pull/442- Backports #419, #427, and #438.
- β¨ Limit max_response_size (backport 0.2) by @nevans in https://github.com/ruby/net-imap/pull/447
- Backports #444.
Documentation
- π Add docs for receiver thread & server responses by @nevans in https://github.com/ruby/net-imap/pull/440
- Backports #418 and #437.
Other Changes
- β»οΈ Backport
ResponseReaderto v0.2 by @nevans in https://github.com/ruby/net-imap/pull/443- Backports #422, #433, #434, #435, and #439.
Miscellaneous
- β Add modern ruby versions to CI by @nevans in https://github.com/ruby/net-imap/pull/441
Full Changelog: https://github.com/ruby/net-imap/compare/v0.2.4...v0.2.5
- Ruby
Published by nevans 11 months ago
https://github.com/ruby/net-imap - v0.3.9
What's Changed
π Security
This release backports two features to prevent unbounded memory use: the response_handlers keyword argument to Net::IMAP.new so response handlers can be added before the server can send any responses (https://github.com/ruby/net-imap/pull/438), and the max_response_size config attribute (https://github.com/ruby/net-imap/pull/446, GHSA-j3g3-5qv5-52mj, CVE-2025-43857, reported by @Masamuneee).
[!NOTE]
The defaultmax_response_sizeisnil(unlimited), to avoid backward compatibility issues with secure connections to trusted servers that are well-behaved. It can be configured more conservatively to guard against untrusted servers (for example, connecting to user-provided hostnames). It is the responsibility ofnet-imapusers to configure their client appropriately for the server they are connecting to.
Added
- β¨ Backport
response_handlersoption tonewby @nevans in https://github.com/ruby/net-imap/pull/438- Backports #419, and #427
- β¨ Limit max_response_size by @nevans in https://github.com/ruby/net-imap/pull/446
- Backports #444
Fixed
- π Use
Range#sizevsRange#countforuid-setlimit by @nevans in https://github.com/ruby/net-imap/pull/411
Documentation
- π Docs: receiver thread, server responses, connection state by @nevans in https://github.com/ruby/net-imap/pull/437
- Backports #418, and only the documentation from #416.
Other Changes
- β»οΈ Backport
ResponseReaderby @nevans in https://github.com/ruby/net-imap/pull/439- Backports #422, #433, #434, and #435
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.8...v0.3.9
- Ruby
Published by nevans 11 months ago
https://github.com/ruby/net-imap - v0.4.20
What's Changed
π Security
This release backports two features to prevent unbounded memory use: the response_handlers keyword argument to Net::IMAP.new so response handlers can be added before the server can send any responses (https://github.com/ruby/net-imap/pull/427), and the max_response_size config attribute (https://github.com/ruby/net-imap/pull/445, GHSA-j3g3-5qv5-52mj, CVE-2025-43857, reported by @Masamuneee).
[!NOTE]
The defaultmax_response_sizeisnil(unlimited), to avoid backward compatibility issues with secure connections to trusted servers that are well-behaved. It can be configured more conservatively to guard against untrusted servers (for example, connecting to user-provided hostnames). It is the responsibility ofnet-imapusers to configure their client appropriately for the server they are connecting to.
Added
- β¨ Add
response_handlerskwarg toNet::IMAP.newby @nevans in https://github.com/ruby/net-imap/pull/427- Backports #419
- β¨ Limit max_response_size by @nevans in https://github.com/ruby/net-imap/pull/445
- Backports #444
Documentation
- π Backport documentation to v0.4 by @nevans in https://github.com/ruby/net-imap/pull/426
- Backports #418, #420, documentation only from #416, and #424
Other Changes
- β»οΈ Update versioned default configs by @nevans in https://github.com/ruby/net-imap/pull/413
- Backports #412
- β»οΈ Refactor
get_responseby @nevans in https://github.com/ruby/net-imap/pull/431- Backports #422
- β»οΈ Rational config versions by @nevans in https://github.com/ruby/net-imap/pull/430
- Backports #429
- β»οΈ Extract ResponseReader from get_response by @nevans in https://github.com/ruby/net-imap/pull/434
- Backports #433
- β»οΈ Refactoring by @nevans in https://github.com/ruby/net-imap/pull/436
- Backports #417 and #435
Miscellaneous
- β
Various test improvements to v0.4 by @nevans in https://github.com/ruby/net-imap/pull/425
- Backports #414, #415, #421, and
assert_patternfrom minitest (originally in #333)
- Backports #414, #415, #421, and
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.19...v0.4.20
- Ruby
Published by github-actions[bot] 11 months ago
https://github.com/ruby/net-imap - v0.5.7
What's Changed
π Security
This release adds two features to prevent unbounded memory use: the response_handlers keyword argument to Net::IMAP.new (https://github.com/ruby/net-imap/pull/419) so response handlers can be added before the server can send any responses, and the max_response_size config attribute (https://github.com/ruby/net-imap/pull/444, GHSA-j3g3-5qv5-52mj, CVE-2025-43857, reported by @Masamuneee).
[!NOTE]
The defaultmax_response_sizeis extremely high, to avoid issues with secure connections to trusted servers that are well-behaved. It can be configured more conservatively to guard against untrusted servers (for example, connecting to user-provided hostnames). It is the responsibility ofnet-imapusers to configure their client appropriately for the server they are connecting to.
Added
- β¨ Track IMAP connection state by @nevans in https://github.com/ruby/net-imap/pull/416
- β¨ Add
response_handlerskwarg toNet::IMAP.newby @nevans in https://github.com/ruby/net-imap/pull/419 - β¨ Customize SequenceSet YAML serialization by @nevans in https://github.com/ruby/net-imap/pull/432
- β¨ Limit
max_response_sizeby @nevans in https://github.com/ruby/net-imap/pull/444
Documentation
- π Improve docs for unbounded memory use and thread safety by @nevans in https://github.com/ruby/net-imap/pull/418
- π Impove SequenceSet docs by @nevans in https://github.com/ruby/net-imap/pull/420
- π Doc improvements for open_timeout, etc by @nevans in https://github.com/ruby/net-imap/pull/424
Other Changes
- β»οΈ Reorganize
Config.version_defaultscreation by @nevans in https://github.com/ruby/net-imap/pull/412 - β»οΈ Refactor Config attr type coercion by @nevans in https://github.com/ruby/net-imap/pull/417
- β»οΈ Refactor
Net::IMAP#get_response(internal) by @nevans in https://github.com/ruby/net-imap/pull/422 - β»οΈ Rational config versions by @nevans in https://github.com/ruby/net-imap/pull/429
- β»οΈ Extract ResponseReader from
get_responseby @nevans in https://github.com/ruby/net-imap/pull/433 - β»οΈ Refactor ResponseReader by @nevans in https://github.com/ruby/net-imap/pull/435
Miscellaneous
- Bump step-security/harden-runner from 2.10.4 to 2.11.0 by @dependabot in https://github.com/ruby/net-imap/pull/409
- β Make FakeServer more robust against disconnect by @nevans in https://github.com/ruby/net-imap/pull/414
- β Improvements to FakeServer (tests only) by @nevans in https://github.com/ruby/net-imap/pull/415
- β Ignore more IO errors in some FakeServer tests by @nevans in https://github.com/ruby/net-imap/pull/421
- β¬οΈ Bump step-security/harden-runner from 2.11.0 to 2.11.1 by @dependabot in https://github.com/ruby/net-imap/pull/423
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.6...v0.5.7
- Ruby
Published by github-actions[bot] 11 months ago
https://github.com/ruby/net-imap - v0.3.8
What's Changed
π Security Fix
Mitigates CVE-2025-25186 (GHSA-7fc5-f82f-cx69): A malicious server can exhaust client memory by sending APPENDUID or COPYUID responses with very large uid-set ranges. Net::IMAP::UIDPlusData expands these ranges into arrays of integers.
Fix with minor API changes
For v0.3.8, this option is not available. Upgrade to v0.4.19, v0.5.6, or higher to replace UIDPlusData with AppendUIDData and CopyUIDData. These classes store their UIDs as Net::IMAP::SequenceSet objects (not expanded into arrays of integers).
Mitigate with backward compatible API
This release mitigates the attack by crashing if a server tries to send a uid-set that represents more than 10,000 numbers. This should be larger than almost all legitimate COPYUID or APPENDUID responses and would limit the array to only 80KB (on a 64 bit system).
For v0.3.8, this option is not configurable. Upgrade to v0.4.19, v0.5.6, or higher to configure this limit.
Please Note: unhandled responses
If the client does not add response handlers to prune unhandled responses, a malicious server can still eventually exhaust all client memory, by repeatedly sending malicious responses. However, net-imap has always retained unhandled responses, and it has always been necessary for long-lived connections to prune these responses. This is not significantly different from connecting to a trusted server with a long-lived connection. To limit the maximum number of retained responses, a simple handler might look something like the following:
limit = 1000
imap.add_response_handler do |resp|
name = resp.name
code = resp.data.code&.name if resp.data.in?(Net::IMAP::ResponseText)
# before 0.4.0:
imap.responses[name].slice!(0...-limit)
imap.responses[code].slice!(0...-limit)
# since 0.4.0:
imap.responses(name) { _1.slice!(0...-limit) }
imap.responses(code) { _1.slice!(0...-limit) }
end
Miscellaneous
- β Renew test certificates for CI by @sorah in https://github.com/ruby/net-imap/pull/259
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.7...v0.3.8
- Ruby
Published by nevans about 1 year ago
https://github.com/ruby/net-imap - v0.4.19
What's Changed
π Security Fix
Fixes CVE-2025-25186 (GHSA-7fc5-f82f-cx69): A malicious server can exhaust client memory by sending APPENDUID or COPYUID responses with very large uid-set ranges. Net::IMAP::UIDPlusData expands these ranges into arrays of integers.
Fix with minor API changes
Set config.parser_use_deprecated_uidplus_data to false to replace UIDPlusData with AppendUIDData and CopyUIDData. These classes store their UIDs as Net::IMAP::SequenceSet objects (not expanded into arrays of integers). Code that does not handle APPENDUID or COPYUID responses should not see any difference. Code that does handle these responses may need to be updated.
For v0.3.8, this option is not available
For v0.4.19, the default value is true.
For v0.5.6, the default value is :up_to_max_size.
For v0.6.0, the only allowed value will be false (UIDPlusData will be removed from v0.6).
Mitigate with backward compatible API
Adjust config.parser_max_deprecated_uidplus_data_size to limit the maximum UIDPlusData UID set size.
When config.parser_use_deprecated_uidplus_data == true, larger sets will crash.
When config.parser_use_deprecated_uidplus_data == :up_to_max_size, larger sets will use AppendUIDData or CopyUIDData.
For v0.3,8, this limit is hard-coded to 10,000.
For v0.4.19, this limit defaults to 1000.
For v0.5.6, this limit defaults to 100.
For v0.6.0, the only allowed value will be 0 (UIDPlusData will be removed from v0.6).
Please Note: unhandled responses
If the client does not add response handlers to prune unhandled responses, a malicious server can still eventually exhaust all client memory, by repeatedly sending malicious responses. However, net-imap has always retained unhandled responses, and it has always been necessary for long-lived connections to prune these responses. This is not significantly different from connecting to a trusted server with a long-lived connection. To limit the maximum number of retained responses, a simple handler might look something like the following:
limit = 1000
imap.add_response_handler do |resp|
next unless resp.respond_to?(:name) && resp.respond_to?(:data)
name = resp.name
code = resp.data.code&.name if resp.data.in?(Net::IMAP::ResponseText)
imap.responses(name) { _1.slice!(0...-limit) }
imap.responses(code) { _1.slice!(0...-limit) }
end
Added
- π§ ResponseParser config is mutable and non-global (backports #381) by @nevans in https://github.com/ruby/net-imap/pull/382
- β¨ SequenceSet ordered entries methods (backports to v0.4-stable) by @nevans in https://github.com/ruby/net-imap/pull/402
Backports the following:- β¨ Add SequenceSet methods for querying about duplicates by @nevans in https://github.com/ruby/net-imap/pull/384
- β¨ Add
SequenceSet#each_ordered_numberby @nevans in https://github.com/ruby/net-imap/pull/386 - β¨ Add
SequenceSet#find_ordered_indexby @nevans in https://github.com/ruby/net-imap/pull/396 - β¨ Add
SequenceSet#ordered_atby @nevans in https://github.com/ruby/net-imap/pull/397
- β¨ Backport UIDPlusData, AppendUIDData, CopyUIDData to v0.4 by @nevans in https://github.com/ruby/net-imap/pull/404
Backports the following:- β¨ Add AppendUIDData and CopyUIDData classes by @nevans in https://github.com/ruby/net-imap/pull/400
- π§ Add parser config for
APPENDUID/COPYUID, ποΈ Deprecate UIDPlusData by @nevans in https://github.com/ruby/net-imap/pull/401
Fixed
- π Backport SequenceSet bugfixes (#376, #377) to v0.4 by @nevans in https://github.com/ruby/net-imap/pull/378
Backports the following:- π Fix
SequenceSet#appendwhen its@stringis nil by @nevans in https://github.com/ruby/net-imap/pull/376 - π Fix SequenceSet merging in another SequenceSet by @nevans in https://github.com/ruby/net-imap/pull/377
- π Fix
- π₯
Re-raise
#starttlserror from receiver thread (backport #395 to v0.4) by @nevans in https://github.com/ruby/net-imap/pull/403
Other Changes
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.18...v0.4.19
- Ruby
Published by github-actions[bot] about 1 year ago
https://github.com/ruby/net-imap - v0.5.6
What's Changed
π Security Fix
Fixes CVE-2025-25186 (GHSA-7fc5-f82f-cx69): A malicious server can exhaust client memory by sending APPENDUID or COPYUID responses with very large uid-set ranges. Net::IMAP::UIDPlusData expands these ranges into arrays of integers.
Fix with minor API changes
Set config.parser_use_deprecated_uidplus_data to false to replace UIDPlusData with AppendUIDData and CopyUIDData. These classes store their UIDs as Net::IMAP::SequenceSet objects (not expanded into arrays of integers). Code that does not handle APPENDUID or COPYUID responses should not see any difference. Code that does handle these responses may need to be updated.
For v0.3.8, this option is not available
For v0.4.19, the default value is true.
For v0.5.6, the default value is :up_to_max_size.
For v0.6.0, the only allowed value will be false (UIDPlusData will be removed from v0.6).
Mitigate with backward compatible API
Adjust config.parser_max_deprecated_uidplus_data_size to limit the maximum UIDPlusData UID set size.
When config.parser_use_deprecated_uidplus_data == true, larger sets will crash.
When config.parser_use_deprecated_uidplus_data == :up_to_max_size, larger sets will use AppendUIDData or CopyUIDData.
For v0.3,8, this limit is hard-coded to 10,000.
For v0.4.19, this limit defaults to 1000.
For v0.5.6, this limit defaults to 100.
For v0.6.0, the only allowed value will be 0 (UIDPlusData will be removed from v0.6).
Please Note: unhandled responses
If the client does not add response handlers to prune unhandled responses, a malicious server can still eventually exhaust all client memory, by repeatedly sending malicious responses. However, net-imap has always retained unhandled responses, and it has always been necessary for long-lived connections to prune these responses. This is not significantly different from connecting to a trusted server with a long-lived connection. To limit the maximum number of retained responses, a simple handler might look something like the following:
limit = 1000
imap.add_response_handler do |resp|
next unless resp.respond_to?(:name) && resp.respond_to?(:data)
name = resp.name
code = resp.data.code&.name if resp.data.is_a?(Net::IMAP::ResponseText)
imap.responses(name) { _1.slice!(0...-limit) }
imap.responses(code) { _1.slice!(0...-limit) }
end
Added
- π§ Ensure ResponseParser config is mutable and non-global by @nevans in https://github.com/ruby/net-imap/pull/381
- β¨ Add SequenceSet methods for querying about duplicates by @nevans in https://github.com/ruby/net-imap/pull/384
- β¨ Add
SequenceSet#each_ordered_numberby @nevans in https://github.com/ruby/net-imap/pull/386 - β¨ Add
SequenceSet#find_ordered_indexby @nevans in https://github.com/ruby/net-imap/pull/396 - β¨ Add
SequenceSet#ordered_atby @nevans in https://github.com/ruby/net-imap/pull/397 - β¨ Add AppendUIDData and CopyUIDData classes by @nevans in https://github.com/ruby/net-imap/pull/400
- π§ Add parser config for
APPENDUID/COPYUID, ποΈ Deprecate UIDPlusData by @nevans in https://github.com/ruby/net-imap/pull/401
Fixed
- π Fix
SequenceSet#appendwhen its@stringis nil by @nevans in https://github.com/ruby/net-imap/pull/376 - π Fix SequenceSet merging in another SequenceSet by @nevans in https://github.com/ruby/net-imap/pull/377
- π Fix SequenceSet count dups with multiple "*" by @nevans in https://github.com/ruby/net-imap/pull/387
- π₯
Re-raise
#starttlserror from receiver thread by @nevans in https://github.com/ruby/net-imap/pull/395
Documentation
- π Fix
SequenceSet#cover?documentation by @nevans in https://github.com/ruby/net-imap/pull/379 - π Document COPYUID in tagged vs untagged responses by @nevans in https://github.com/ruby/net-imap/pull/398
Other Changes
- π Move UIDPlusData to its own file by @nevans in https://github.com/ruby/net-imap/pull/391
- β»οΈ Parse
uid-setassequence-setwithout*by @nevans in https://github.com/ruby/net-imap/pull/393
Miscellaneous
- β¬οΈ Bump step-security/harden-runner from 2.10.2 to 2.10.3 by @dependabot in https://github.com/ruby/net-imap/pull/375
- β¬οΈ Bump step-security/harden-runner from 2.10.3 to 2.10.4 by @dependabot in https://github.com/ruby/net-imap/pull/380
- β Improve test coverage for SequenceSet enums by @nevans in https://github.com/ruby/net-imap/pull/383
- β»οΈβ Refactor SequenceSet enumerator tests by @nevans in https://github.com/ruby/net-imap/pull/385
- β Add "irb" to Gemfile to silence warning by @nevans in https://github.com/ruby/net-imap/pull/388
- Omit flaky test with macOS platform by @hsbt in https://github.com/ruby/net-imap/pull/389
- β Improve UIDPlusData test coverage by @nevans in https://github.com/ruby/net-imap/pull/392
- π Rename UIDPLUS test file for consistency by @nevans in https://github.com/ruby/net-imap/pull/399
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.5...v0.5.6
- Ruby
Published by github-actions[bot] about 1 year ago
https://github.com/ruby/net-imap - v0.5.5
What's Changed
Breaking Changes
- ππ₯ Remove accidental
Data#attributesmethod by @nevans in https://github.com/ruby/net-imap/pull/371
For ruby 3.2 and above, this PR is not a breaking change, and it fixes a YAML serialization bug.
Net::IMAP::Data#attributeswas only available in ruby 3.1, withnet-imapv0.5.2-v0.5.4. It can be replaced by#to_h.
Added
- RFC9586 UIDONLY support by @avdi in https://github.com/ruby/net-imap/pull/366
Documentation
- π Fix rdoc issues by @nevans in https://github.com/ruby/net-imap/pull/372
- π Use standard www.rfc-editor.org links for RFCs by @nevans in https://github.com/ruby/net-imap/pull/374
- π Documentation updates by @nevans in https://github.com/ruby/net-imap/pull/373
New Contributors
- @avdi made their first contribution in https://github.com/ruby/net-imap/pull/366
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.4...v0.5.5
- Ruby
Published by github-actions[bot] about 1 year ago
https://github.com/ruby/net-imap - v0.5.4
What's Changed
Added
- β¨ Add support for
PARTIALextension (RFC9394) by @nevans in https://github.com/ruby/net-imap/pull/367
Fixed
- π Fix partial-range encoding of exclusive ranges by @nevans in https://github.com/ruby/net-imap/pull/370
Documentation
- π Fix documentation for
#fetchby @nevans in https://github.com/ruby/net-imap/pull/369
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.3...v0.5.4
- Ruby
Published by github-actions[bot] about 1 year ago
https://github.com/ruby/net-imap - v0.5.3
What's Changed
Added
- β¨ Add support for VANISHED responses by @nevans in https://github.com/ruby/net-imap/pull/329
Documentation
- π Fix rdoc issues by @nevans in https://github.com/ruby/net-imap/pull/365
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.2...v0.5.3
- Ruby
Published by github-actions[bot] about 1 year ago
https://github.com/ruby/net-imap - v0.5.2
What's Changed
Added
- π₯ Raise ArgumentError on multiple search charset args by @nevans in https://github.com/ruby/net-imap/pull/363
- β¨ Add keyword argument for search
charsetby @nevans in https://github.com/ruby/net-imap/pull/364 - β¨ Add basic
ESEARCHsupport (RFC4466, RFC4731) by @nevans in https://github.com/ruby/net-imap/pull/333
Fixed
- π Return empty SearchResult for no search result by @nevans in https://github.com/ruby/net-imap/pull/362
Documentation
- π Fix README example by @nevans in https://github.com/ruby/net-imap/pull/354
- π¦π Add release.yml for better release note generation by @nevans in https://github.com/ruby/net-imap/pull/355
- ππ Fix rdoc 6.8 CSS styles by @nevans in https://github.com/ruby/net-imap/pull/356
- π Update IMAP#search docs (again) by @nevans in https://github.com/ruby/net-imap/pull/360
- π Consistent heading levels inside method rdoc by @nevans in https://github.com/ruby/net-imap/pull/361
Other Changes
- β¨ Add Data polyfill for ruby 3.1 by @nevans in https://github.com/ruby/net-imap/pull/352
- β»οΈ Refactor internal command data classes by @nevans in https://github.com/ruby/net-imap/pull/358
Miscellaneous
- π₯ Drop YAML.unsafe_load_file refinement (tests only) by @nevans in https://github.com/ruby/net-imap/pull/353
- β¬οΈ Bump step-security/harden-runner from 2.10.1 to 2.10.2 by @dependabot in https://github.com/ruby/net-imap/pull/357
- Enabled windows-latest on GHA by @hsbt in https://github.com/ruby/net-imap/pull/359
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.1...v0.5.2
- Ruby
Published by github-actions[bot] about 1 year ago
https://github.com/ruby/net-imap - v0.4.18
What's Changed
- π Fix SequenceSet.try_convert by @nevans in https://github.com/ruby/net-imap/pull/350 (backports https://github.com/ruby/net-imap/pull/349)
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.17...v0.4.18
- Ruby
Published by github-actions[bot] over 1 year ago
https://github.com/ruby/net-imap - v0.5.1
What's Changed
Added
- β¨ Add
SequenceSet#deconstructby @nevans in https://github.com/ruby/net-imap/pull/343 - β¨ Coerce
Set,:*,#to_sequence_setsearch args into sequence-set by @nevans in https://github.com/ruby/net-imap/pull/351 - β¨ Enable parenthesized lists in search criteria by @nevans in https://github.com/ruby/net-imap/pull/345
Fixed
- π Ensure
setis loaded in ruby 3.1 by @nevans in https://github.com/ruby/net-imap/pull/342 - π Fix
SequenceSet.try_convertby @nevans in https://github.com/ruby/net-imap/pull/349
Documentation
- π Update
#searchdocumentation by @nevans in https://github.com/ruby/net-imap/pull/347
Other Changes
- β»οΈ Reduce duplication in normalizing search args by @nevans in https://github.com/ruby/net-imap/pull/348
Miscellaneous
- Make simplecov-json as optional dependency by @hsbt in https://github.com/ruby/net-imap/pull/344
- Removed needless workaround by @hsbt in https://github.com/ruby/net-imap/pull/346
Full Changelog: https://github.com/ruby/net-imap/compare/v0.5.0...v0.5.1
- Ruby
Published by github-actions[bot] over 1 year ago
https://github.com/ruby/net-imap - v0.5.0
What's Changed
Breaking Changes
- π₯ Drop ruby 2.7 and 3.0 support, and require ruby 3.1 by @nevans in https://github.com/ruby/net-imap/pull/276
- π₯β‘ Simplify
header-fld-nameparser (backward incompatible) by @nevans in https://github.com/ruby/net-imap/pull/216
For example,HEADER.FIELDS(Content-Type)orHEADER.FIELDS("Content-Type")are semantically identical, and a server may choose to return the quoted version.- Before this change, the FetchData attr header name would be quoted if the server sent the field name quoted.
- After this change, the header field names will always be unquoted by the parser, so the result will always available via
fetch_data.header_fields("Content-Type")orfetch_data.attr_upcase["HEADER.FIELDS(CONTENT-TYPE)"].
- π₯ Replace MessageSet with SequenceSet by @nevans in https://github.com/ruby/net-imap/pull/282
Most of the changes are bugfixes or allow something new to work that didn't work before. See the PR for more details.
This affects#search,#uid_search,#sort,#uid_sort,#fetch,#uid_fetch,#store,#uid_store,#copy,#uid_copy,#move,#uid_move, and#uid_expunge. - π₯ SequenceSet input validation for Set, Array, and enumerables by @nevans in https://github.com/ruby/net-imap/pull/319
- Array inputs can still be deeply nested.
- Set inputs can only contain integers and
"*"or:*, to be consistent withSequenceSet#to_set. - Other
Enumerableswill only be converted if they implement#to_sequence_set.
- π₯ Remove deprecated
#client_threadattr_reader by @nevans in https://github.com/ruby/net-imap/pull/321
#client_threadwas deprecated byv0.4.0. - π₯ Drop deprecated BodyType structs by @nevans in https://github.com/ruby/net-imap/pull/323
These structs were deprecated byv0.4.0.
Added
- β¨ Add
#extract_responsesmethod by @nevans in https://github.com/ruby/net-imap/pull/330 Also backported tov0.4.17. - β¨ New config option to return frozen dup from
#responsesby @nevans in https://github.com/ruby/net-imap/pull/334 Also backported tov0.4.17. - π₯
Improve SequenceSet frozen errors by @nevans in https://github.com/ruby/net-imap/pull/331 Also backported to
v0.4.17. - π SequenceSet API is considered stable now by @nevans in https://github.com/ruby/net-imap/pull/318
- π Enforce
LOGINDISABLEDrequirement by @nevans in https://github.com/ruby/net-imap/pull/307
To workaround buggy servers,config.enforce_logindisabledcan be set to:when_capabilities_cachedorfalse. - π SASL DIGEST-MD5: realm, host, service_name, etc by @nevans in https://github.com/ruby/net-imap/pull/284
Please note that theDIGEST-MD5SASL mechanism is insecure and deprecated.
Deprecations
- π Warn about deprecated
#responsesusage by @nevans in https://github.com/ruby/net-imap/pull/97
To silence these warnings:- pass a block to
#responses(supported sincev0.4.0), - pass a response type to
#responsesfor a frozen copied array (sincev0.4.17), - set
config.responses_without_blockto:silence_deprecation_warning(sincev0.4.13), - set
config.responses_without_blockto:frozen_dupfor a frozen copy (sincev0.4.17), - use
#clear_responsesinstead (sincev0.4.0), - use
#extract_responsesinstead (sincev0.4.17).
- pass a block to
- ποΈ Deprecate
MessageSetby @nevans in https://github.com/ruby/net-imap/pull/282
MessageSetwas only intended for internal use, and all internal usage has been replaced.
Fixed
- π Fix #send_data to send DateTime as time by @taku0 in https://github.com/ruby/net-imap/pull/313
Also backported tov0.4.15. - π Fix #header_fld_name to handle quoted strings correctly by @taku0 in https://github.com/ruby/net-imap/pull/315
Also backported tov0.4.16. - π Fix SequenceSet[input] when input is a SequenceSet by @nevans in https://github.com/ruby/net-imap/pull/326
Also backported tov0.4.17. - π Fix Set inputs for SequenceSet by @nevans in https://github.com/ruby/net-imap/pull/332
This bug was introduced by https://github.com/ruby/net-imap/pull/319, which had not been previously released.
Other Changes
- π§ Update default config for v0.5 by @nevans in https://github.com/ruby/net-imap/pull/305
- β»οΈ Use Integer.try_convert (new in ruby 3.1+) by @nevans in https://github.com/ruby/net-imap/pull/316
- ποΈ Add
category: :deprecatedto calls towarnby @nevans in https://github.com/ruby/net-imap/pull/322 - β»οΈ Extract SASL::Authenticators#normalize_name by @nevans in https://github.com/ruby/net-imap/pull/309
- π π Improvements and docs for SASL::ClientAdapter by @nevans in https://github.com/ruby/net-imap/pull/320
- β»οΈ Use SASL::ClientAdapter by @nevans in https://github.com/ruby/net-imap/pull/194
Documentation
- π Update Config rdoc for v0.5 by @nevans in https://github.com/ruby/net-imap/pull/306
- π Update SASL documentation by @nevans in https://github.com/ruby/net-imap/pull/308
- π SequenceSet API is considered stable now by @nevans in https://github.com/ruby/net-imap/pull/318
- π π Improvements and docs for SASL::ClientAdapter by @nevans in https://github.com/ruby/net-imap/pull/320
Miscellaneous
- β
Add a Mutex to FakeServer (for tests only) by @nevans in https://github.com/ruby/net-imap/pull/317
Also backported tov0.4.17. - β¬οΈ Bump step-security/harden-runner from 2.8.1 to 2.9.0 by @dependabot in https://github.com/ruby/net-imap/pull/311
- β¬οΈ Bump step-security/harden-runner from 2.9.0 to 2.9.1 by @dependabot in https://github.com/ruby/net-imap/pull/312
- Bump step-security/harden-runner from 2.9.1 to 2.10.1 by @dependabot in https://github.com/ruby/net-imap/pull/325
- π¨π Fix rdoc => ghpages workflow by @nevans in https://github.com/ruby/net-imap/pull/335
- β
Fix GH action for rubygems Trusted Publishing by @nevans in https://github.com/ruby/net-imap/pull/340
Also backported tov0.4.17. - β Setup simplecov by @nevans in https://github.com/ruby/net-imap/pull/328
New Contributors
- @taku0 made their first contribution in https://github.com/ruby/net-imap/pull/313
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.14...v0.5.0
(Note that v0.4.x releases since v0.4.14 have used the v0.4-stable branch.)
- Ruby
Published by nevans over 1 year ago
https://github.com/ruby/net-imap - v0.4.17
What's Changed
Added features
- β¨ Add
#extract_responsesmethod by @nevans in https://github.com/ruby/net-imap/pull/337 (backports https://github.com/ruby/net-imap/pull/330) - β¨ New config option to return frozen dup from
#responsesby @nevans in https://github.com/ruby/net-imap/pull/339 (backports https://github.com/ruby/net-imap/pull/334)
This will become the default inv0.6.0.
Bug fixes
- π Fix SequenceSet[input] when input is a SequenceSet by @nevans in https://github.com/ruby/net-imap/pull/327 (backports https://github.com/ruby/net-imap/pull/326)
Other Changes
- π₯ Improve SequenceSet frozen errors by @nevans in https://github.com/ruby/net-imap/pull/338 (backports https://github.com/ruby/net-imap/pull/331)
Miscellaneous
- β Add a Mutex to FakeServer (for tests only) by @nevans in https://github.com/ruby/net-imap/pull/336 (backports https://github.com/ruby/net-imap/pull/317)
- β Fix GH action for Rubygems Trusted Publishing by @nevans in https://github.com/ruby/net-imap/pull/341 (backports https://github.com/ruby/net-imap/pull/340)
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.16...v0.4.17
- Ruby
Published by nevans over 1 year ago
https://github.com/ruby/net-imap - v0.4.16
What's Changed
Fixed
- π Fix #header_fld_name to handle quoted strings correctly by @taku0 in https://github.com/ruby/net-imap/pull/315
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.15...v0.4.16
- Ruby
Published by github-actions[bot] over 1 year ago
https://github.com/ruby/net-imap - v0.4.15
What's Changed
Fixed
- π Fix #send_data to send DateTime as time by @taku0 in https://github.com/ruby/net-imap/pull/313
New Contributors
- @taku0 made their first contribution in https://github.com/ruby/net-imap/pull/313
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.14...v0.4.15
- Ruby
Published by github-actions[bot] over 1 year ago
https://github.com/ruby/net-imap - v0.4.14
What's Changed
Added
- β¨ Add Config methods:
#to_h,#update, and#withby @nevans in https://github.com/ruby/net-imap/pull/300 - π§ Add versioned defaults by @nevans in https://github.com/ruby/net-imap/pull/302
- π§ Add
Config#load_defaultsby @nevans in https://github.com/ruby/net-imap/pull/301
Fixed
- π Fix Config#clone to clone internal data struct by @nevans in https://github.com/ruby/net-imap/pull/303
- π Fix ruby 2.7 warnings by @nevans in https://github.com/ruby/net-imap/pull/304
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.13...v0.4.14
- Ruby
Published by nevans over 1 year ago
https://github.com/ruby/net-imap - v0.4.13
What's Changed
β¨ Added features
- π§ Add Config class for
debug,open_timeout, andidle_response_timeoutby @nevans in https://github.com/ruby/net-imap/pull/291Net::IMAP.configfor global configuration. This enables global defaults for previously client-local configuration:open_timeoutidle_response_timeout
- config keyword parameters for
Net::IMAP.new Net::IMAP#configfor client configuration. This enables client-local overrides of previously global configuration:debug
- β»οΈ Minor Config class tidy up by @nevans in https://github.com/ruby/net-imap/pull/295
- π§ Add config option for
sasl_irby @nevans in https://github.com/ruby/net-imap/pull/294 - π Add config option for
responses_without_blockby @nevans in https://github.com/ruby/net-imap/pull/293
π Documentation
- π Improve #idle and #idle_done rdoc by @nevans in https://github.com/ruby/net-imap/pull/290
- π Update rdoc for Config and related updates by @nevans in https://github.com/ruby/net-imap/pull/297
- π Improve rdoc for Net::IMAP.new ssl: params by @nevans in https://github.com/ruby/net-imap/pull/298
- π Improve Config class rdoc by @nevans in https://github.com/ruby/net-imap/pull/296
π οΈ Other changes
- π¦ Don't keep .github, .gitignore, .mailmap in gem by @nevans in https://github.com/ruby/net-imap/pull/299
- β¬οΈ Bump step-security/harden-runner from 2.8.0 to 2.8.1 by @dependabot in https://github.com/ruby/net-imap/pull/292
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.12...v0.4.13
- Ruby
Published by nevans over 1 year ago
https://github.com/ruby/net-imap - v0.4.12
What's Changed
- π Fix many rdoc spelling mistakes by @nevans in https://github.com/ruby/net-imap/pull/279
- π¦ Update workflow with configure_trusted_publisher by @nevans in https://github.com/ruby/net-imap/pull/280
- π Simplify handling of ResponseParser test failures by @nevans in https://github.com/ruby/net-imap/pull/281
- β¬οΈ Bump step-security/harden-runner from 2.7.1 to 2.8.0 by @dependabot in https://github.com/ruby/net-imap/pull/289
- Clarify the license of net-imap by @shugo in https://github.com/ruby/net-imap/pull/275
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.11...v0.4.12
- Ruby
Published by shugo almost 2 years ago
https://github.com/ruby/net-imap - v0.4.11
What's Changed
Server workarounds
- Consider extra empty space in BODYSTRUCTURE by @gaynetdinov in https://github.com/ruby/net-imap/pull/271
Miscellaneous
- π Fix parser benchmarks generation by @nevans in https://github.com/ruby/net-imap/pull/266
- β Add basic test for SEARCH / UID SEARCH command by @nevans in https://github.com/ruby/net-imap/pull/267
- π§ Update gem email address and git mailmap by @nevans in https://github.com/ruby/net-imap/pull/264
- β Update Github test workflow name by @nevans in https://github.com/ruby/net-imap/pull/268
- β¬οΈ Bump actions/configure-pages from 4 to 5 by @dependabot in https://github.com/ruby/net-imap/pull/270
- π§π Configure RubyGems Trusted Publishing by @nevans in https://github.com/ruby/net-imap/pull/265
New Contributors
- @gaynetdinov made their first contribution in https://github.com/ruby/net-imap/pull/271
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.10...v0.4.11
- Ruby
Published by github-actions[bot] almost 2 years ago
https://github.com/ruby/net-imap - v0.4.10
What's Changed
Fixes
- π Do not automatically freeze SearchResult by @nevans in https://github.com/ruby/net-imap/pull/263
This fixes a backwards incompatible change inv0.4.8that affected themailgem.
See https://github.com/ruby/net-imap/issues/262, reported by @stanley90.
Documentation
- π Workaround rdoc method visibility issue by @nevans in https://github.com/ruby/net-imap/pull/257
- π Workaround rdoc issue with
:yield:and visibility by @nevans in https://github.com/ruby/net-imap/pull/258
Miscellaneous
- β¬οΈ Bump actions/upload-pages-artifact from 2 to 3 by @dependabot in https://github.com/ruby/net-imap/pull/256
- β¬οΈ Bump actions/deploy-pages from 3 to 4 by @dependabot in https://github.com/ruby/net-imap/pull/255
- Renew test certificates by @sorah in https://github.com/ruby/net-imap/pull/259
- Add base64 dev dependency by @hsbt in https://github.com/ruby/net-imap/pull/261
- Import sample code from ruby/ruby by @hsbt in https://github.com/ruby/net-imap/pull/260
New Contributors
- @sorah made their first contribution in https://github.com/ruby/net-imap/pull/259
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.9...v0.4.10
- Ruby
Published by nevans about 2 years ago
https://github.com/ruby/net-imap - v0.4.9.1
What's Changed
- Renew test certificates by @sorah in https://github.com/ruby/net-imap/pull/259
New Contributors
- @sorah made their first contribution in https://github.com/ruby/net-imap/pull/259
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.9...v0.4.9.1
- Ruby
Published by hsbt about 2 years ago
https://github.com/ruby/net-imap - v0.3.4.1
What's Changed
- Renew test certificates by @sorah in https://github.com/ruby/net-imap/pull/259
New Contributors
- @sorah made their first contribution in https://github.com/ruby/net-imap/pull/259
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.4...v0.3.4.1
- Ruby
Published by hsbt about 2 years ago
https://github.com/ruby/net-imap - v0.2.4
What's Changed
- Renew test certificates by @sorah in https://github.com/ruby/net-imap/pull/259
New Contributors
- @sorah made their first contribution in https://github.com/ruby/net-imap/pull/259
Full Changelog: https://github.com/ruby/net-imap/compare/v0.2.3...v0.2.4
- Ruby
Published by hsbt about 2 years ago
https://github.com/ruby/net-imap - v0.4.9
What's Changed
Added
- β¨ Add
SequenceSet#overlap?alias forintersect?by @nevans in https://github.com/ruby/net-imap/pull/252 - β¨ Preserving sequence set order by @nevans in https://github.com/ruby/net-imap/pull/254
- Add
SequenceSet#entriesand#each_entry, for unsorted iteration - Add
SequenceSet#append, to keep unsorted order when modifying the set
- Add
Documentation
- π Fix "not not" in FetchData docs by @nevans in https://github.com/ruby/net-imap/pull/248
- π Document SequenceSet "Normalized form" by @nevans in https://github.com/ruby/net-imap/pull/254
Other Changes
- Remove redundant calls in sort_internal and thread_internal by @gobijan in https://github.com/ruby/net-imap/pull/251
Miscellaneous
- β Document and test workaround for invalid "*" in FLAGS by @nevans in https://github.com/ruby/net-imap/pull/249
- β Limit CI rubygems for 2.7 compatibility by @nevans in https://github.com/ruby/net-imap/pull/253
New Contributors
- @gobijan made their first contribution in https://github.com/ruby/net-imap/pull/251
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.8...v0.4.9
- Ruby
Published by nevans about 2 years ago
https://github.com/ruby/net-imap - v0.4.8
What's Changed
Added
- β¨ Improve SequenceSet with Set, Range, Enumerable methods by @nevans in https://github.com/ruby/net-imap/pull/239
- β¨ Add support for the
CONDSTOREextension (RFC7162) by @nevans in https://github.com/ruby/net-imap/pull/236
NOTE:#searchand#uid_searchhave been updated to returnSearchResultrather thanArray.SearchResultinherits fromArray, for backward compatibility.
Fixed
- π©Ή Workaround invalid Gmail FLAGS response by @nevans in https://github.com/ruby/net-imap/pull/246
- π Fix broken
QUOTA/QUOTAROOTresponse parsing by @nevans in https://github.com/ruby/net-imap/pull/247
Documentation
- π Update extension docs for IMAP4rev2, STATUS=SIZE by @nevans in https://github.com/ruby/net-imap/pull/242
- π List all currently supported response codes by @nevans in https://github.com/ruby/net-imap/pull/243
Miscellaneous
- Bump actions/configure-pages from 3 to 4 by @dependabot in https://github.com/ruby/net-imap/pull/245
- Bump actions/deploy-pages from 2 to 3 by @dependabot in https://github.com/ruby/net-imap/pull/244
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.7...v0.4.8
- Ruby
Published by nevans about 2 years ago
https://github.com/ruby/net-imap - v0.4.7
What's Changed
- Provide a 'Changelog' link on rubygems.org/gems/net-imap by @mark-young-atg in https://github.com/ruby/net-imap/pull/235
- β‘οΈ Simplify and speed up
SEARCHresponse parsing by @nevans in https://github.com/ruby/net-imap/pull/238 - π©Ή Workaround buggy outlook.com address lists by @nevans in https://github.com/ruby/net-imap/pull/240
New Contributors
- @mark-young-atg made their first contribution in https://github.com/ruby/net-imap/pull/235
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.6...v0.4.7
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.4.6
What's Changed
Changed
- π©Ή Workaround servers that don't send required
SPwhenresp-textis empty by @nevans in https://github.com/ruby/net-imap/pull/230 - β‘οΈ Simplify and speed up
envelopeandaddressparsing by @nevans in https://github.com/ruby/net-imap/pull/232 - β‘οΈ Simplify and speed up
mailbox-listparsing by @nevans in https://github.com/ruby/net-imap/pull/233 - β‘ Simplify and speed up
thread-dataresponse parsing by @nevans in https://github.com/ruby/net-imap/pull/234
Documentation
- π Update
#statusdocs forDELETED(IMAP4rev2) by @nevans in https://github.com/ruby/net-imap/pull/227
Miscellaneous
- π Fix benchmark string encoding by @nevans in https://github.com/ruby/net-imap/pull/231
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.5...v0.4.6
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.4.5
What's Changed
β¨ Added
IMAP extension support
- β¨ Add fetch support for
BINARYandBINARY.SIZEby @nevans in https://github.com/ruby/net-imap/pull/207 - β¨ Add fetch support for Gmail's
X-GM-EXT-1extensions by @nevans in https://github.com/ruby/net-imap/pull/209 - β¨ Add support for
OBJECTIDextension (RFC8474) by @nevans in https://github.com/ruby/net-imap/pull/226MAILBOXIDResponseCodeMAILBOXIDattribute forNet::IMAP#statusEMAILIDandTHREADIDmessage attributes toNet::IMAP#fetch/#uid_fetchandFetchData#emailid/#threadid
Other API improvements
- β¨ Allow
decode_datetimeto work without dquotes by @nevans in https://github.com/ruby/net-imap/pull/218 - β¨ Add FetchData msg-att methods and update rdoc by @nevans in https://github.com/ruby/net-imap/pull/220
β»οΈ Changed
- β‘ Better Faster Cleaner
STATUSparsing by @nevans in https://github.com/ruby/net-imap/pull/225
π Documentation
- π Add :nodoc: to internal parser utils by @nevans in https://github.com/ruby/net-imap/pull/221
- π Fix styles.css customization for RDoc 6.6 by @nevans in https://github.com/ruby/net-imap/pull/222
- β¨ Add FetchData msg-att methods and update rdoc by @nevans in https://github.com/ruby/net-imap/pull/220
- π Improve
STATUSattribute documentation by @nevans in https://github.com/ruby/net-imap/pull/225
Miscellaneous
- π Simplify parser test debugging by @nevans in https://github.com/ruby/net-imap/pull/223
- π Update parser benchmark comparison by @nevans in https://github.com/ruby/net-imap/pull/224
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.4...v0.4.5
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.4.4
What's Changed
Performance
- β‘ Parse expected chars using
String#getbyteby @nevans in https://github.com/ruby/net-imap/pull/215 - β‘ Simplify
header-fld-nameparser (backward compatible) by @nevans in https://github.com/ruby/net-imap/pull/217
Error handling
- π₯ Return empty array for missing server response by @nevans in https://github.com/ruby/net-imap/pull/214
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.3...v0.4.4
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.4.3
What's Changed
Fixes
- π Fix unbalanced parens in
body-fld-langparsing by @nevans in https://github.com/ruby/net-imap/pull/204
Error handling
- π₯
Validate
response-taggedin the parser by @nevans in https://github.com/ruby/net-imap/pull/198 - π₯
Return
UnparsedDatafor unhandled response-data by @nevans in https://github.com/ruby/net-imap/pull/200 - π₯ Update parsing of unknown numeric response types by @nevans in https://github.com/ruby/net-imap/pull/213
Performance
- β‘ Simpler, faster
response-dataparser by @nevans in https://github.com/ruby/net-imap/pull/201 - β‘ Simpler, faster
msg-attparser (for fetch responses) by @nevans in https://github.com/ruby/net-imap/pull/205 - β‘ Simpler, faster
resp-text-codeparser (for response codes) by @nevans in https://github.com/ruby/net-imap/pull/211 - β‘ Update flag parsing: FLAGS, LIST, PERMANENTFLAGS by @nevans in https://github.com/ruby/net-imap/pull/212
Changes
- β¨ Update
response-dataparser w/stubs for all extensions by @nevans in https://github.com/ruby/net-imap/pull/202 - β»οΈ Update
responseandcontinue-reqto new parser style by @nevans in https://github.com/ruby/net-imap/pull/199 - β»οΈ Refactor
response-datamethods to match ABNF by @nevans in https://github.com/ruby/net-imap/pull/203
Documentation
- π Fix
XOAuth2Authenticatorrdoc typo by @nevans in https://github.com/ruby/net-imap/pull/196 - π Fixing and formatting docs by @nevans in https://github.com/ruby/net-imap/pull/197
Miscellaneous
- π Add benchmark rake task to compare gem versions by @nevans in https://github.com/ruby/net-imap/pull/208
- Set utf-8 encoding when looking for VERSION in the file. by @debasishbsws in https://github.com/ruby/net-imap/pull/210
New Contributors
- @debasishbsws made their first contribution in https://github.com/ruby/net-imap/pull/210
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.2...v0.4.3
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.4.2
What's Changed
- π SASL: Clarify usage of username vs authcid vs authzid by @nevans in https://github.com/ruby/net-imap/pull/187
- Improved SASL authenticator parameter documentation.
- Aliases have been added from
usernametoauthcidorauthzidβor in the other direction, fromauthcidorauthzdtousername. OAuthBearerAuthenticatormay now receive two arguments, to match the commonauthenticate(username, secret)style.authzid(i.e.username) is still optional for the mechanism (although in practice many servers do require it).- Instead of raising an exception, conflicting arguments are silently ignored. This allows more specific arguments (like
authcidor a keyword argument) to override more generic terms (likeusernameor a positional argument). This improves compatibility with other projects, and can also simplify dynamic mechanism negotiation. - Keyword argument support has been added to the deprecated
LOGINandCRAM-MD5mechanisms. This is for consistency and compatibility with other projects. These mechanisms are obsolete and should be avoided.
- β¨ Add
secretalias (forpassword,oauth2_token, etc) to relevant SASL mechanisms by @nevans in https://github.com/ruby/net-imap/pull/195
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.1...v0.4.2
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.4.1
What's Changed
- π Fix a few documentation mistakes by @nevans in https://github.com/ruby/net-imap/pull/193
- πβοΈ Add experimental SASL::ClientAdapter by @nevans in https://github.com/ruby/net-imap/pull/183
This code is not yet used byNet::IMAP#authenticate(see https://github.com/ruby/net-imap/pull/194). It is released in experimental form in order to simplify using it from other projects, to facilitate collaborating and iterating on a broadly useful API.
Full Changelog: https://github.com/ruby/net-imap/compare/v0.4.0...v0.4.1
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.4.0
What's Changed
Most notably, support has been added for the SASL-IR, ENABLE, and UTF-8=ACCEPT extensions, and for many SASL mechanisms: EXTERNAL, ANONYMOUS, OAUTHBEARER, SCRAM-SHA-1, and SCRAM-SHA-256.
π₯ Breaking changes
- π₯ β¬οΈ Drop v2.6 support; Require v2.7.3; Use "..." arg by @nevans in https://github.com/ruby/net-imap/pull/89
The test suite passes under ruby 2.7, although it does print some warnings for experimental pattern matching.
*π₯ Return an empty array (rather than nil) when the server doesn't send any responses by @nevans in https://github.com/ruby/net-imap/pull/192
This can affectlist,xlist,getquota,lsub,expunge,uid_expunge,fetch,uid_fetch,store, anduid_store.
β¨ Added
Improved IMAP4rev1 protocol and extension support
- β¨ Add missing "location" BODYSTRUCTURE extension data by @nevans in https://github.com/ruby/net-imap/pull/113
- β¨ Cache server capabilities and add
#capable?(name)by @nevans in https://github.com/ruby/net-imap/pull/156 - β¨ Add support for
ENABLE(RFC 5161) by @arnt in https://github.com/ruby/net-imap/pull/98 - β¨ Parse UTF-8 encoded strings, for
UTF8=ACCEPTandIMAP4rev2by @nevans in https://github.com/ruby/net-imap/pull/111- Minor bits for
UTF8=ACCEPTby @arnt in https://github.com/ruby/net-imap/pull/114
- Minor bits for
- β¨π Add
SASL-IRsupport by @nevans in https://github.com/ruby/net-imap/pull/90- π Fix empty
SASL-IRto send "=" by @nevans in https://github.com/ruby/net-imap/pull/180
- π Fix empty
Improved SASL support
- π Add SASL OAUTHBEARER mechanism by @nevans in https://github.com/ruby/net-imap/pull/171
- π Add SASL ANONYMOUS mechanism by @nevans in https://github.com/ruby/net-imap/pull/169
- π Add SASL EXTERNAL mechanism by @nevans in https://github.com/ruby/net-imap/pull/170
- β¨ Make SASL.authenticator case insensitive by @nevans in https://github.com/ruby/net-imap/pull/167
- π Fix authenticate using Symbol mechanism name by @nevans in https://github.com/ruby/net-imap/pull/186
- β¨ Add attr_readers to SASL mechanisms by @nevans in https://github.com/ruby/net-imap/pull/176
- β¨ Allow keyword args on all SASL authenticators by @nevans in https://github.com/ruby/net-imap/pull/177
- π Verify SASL authentication has completed by @nevans in https://github.com/ruby/net-imap/pull/179
- π Add SASL SCRAM-SHA-* mechanisms by @nevans in https://github.com/ruby/net-imap/pull/172
- π SASL PLAIN: Raise ArgumentError for conflicts by @nevans in https://github.com/ruby/net-imap/pull/181
- β¨ Minor updates to SASL::Authenticators API by @nevans in https://github.com/ruby/net-imap/pull/184
Improved Net::IMAP client API
- β¨ Add attr_readers for
hostandportby @nevans in https://github.com/ruby/net-imap/pull/92 - π Add
ssl_ctxandssl_ctx_paramsattr readers by @nevans in https://github.com/ruby/net-imap/pull/174 - π Add
#tls_verified?by @nevans in https://github.com/ruby/net-imap/pull/91 - β¨ Add
#logout!to combine logout and disconnect by @nevans in https://github.com/ruby/net-imap/pull/178 - π§΅ New thread-safe API for
#responsesand add#clear_responsesby @nevans in https://github.com/ruby/net-imap/pull/93 - β¨ Add greeting code data to
#responsesby @nevans in https://github.com/ruby/net-imap/pull/94
StringPrep profiles
- β¨ Add generic stringprep algorithm and the "trace" profile by @nevans in https://github.com/ruby/net-imap/pull/101
- β¨ Add Nameprep stringprep profile by @nevans in https://github.com/ruby/net-imap/pull/83
ποΈ Deprecated
- ποΈ Deprecated
#client_threadby @nevans in https://github.com/ruby/net-imap/pull/93 - ποΈπ§΅ Soft-deprecation of current
#responsesAPI by @nevans in https://github.com/ruby/net-imap/pull/93
The current API is not thread-safe. It is documented as deprecated, but no warning message is logged yet. - ποΈ Deprecated
BodyTypeAttachmentandBodyTypeExtensionstructs @nevans in https://github.com/ruby/net-imap/pull/113 - ποΈ Deprecate backward compatible parameters to
newandstarttlsby @nevans in https://github.com/ruby/net-imap/pull/175
Net::IMAP.newuses keyword parameters for its options now.
Sending a port or an options hash as the second argument is documented as obsolete, but doesn't print warnings yet.
Any other positional parameters are deprecated and will print warnings.
π Fixed
- π Fix NAMESPACE parsing (and other β»οΈ refactoring) by @nevans in https://github.com/ruby/net-imap/pull/112
- π Fix BODYSTRUCTURE parser bugs by @nevans in https://github.com/ruby/net-imap/pull/113
- More strict about where NIL is not allowed, e.g: number, envelope, and body. Ignoring these uncommon bugs made it difficult to workaround much more common server bugs elsewhere.
- BodyTypeAttachment and BodyTypeExtension won't be returned any more.
- Better workaround for multipart parts with... zero parts.
- π Fix typo in uncommon BODYSTRUCTURE parsing code by @nevans in https://github.com/ruby/net-imap/pull/185
- π§΅ Synchronize
@responsesupdate in thread_internal by @nevans in https://github.com/ruby/net-imap/pull/116 - π Add missing lookahead_case_insensitive_string by @nevans in https://github.com/ruby/net-imap/pull/144
- Decode UTF-7 more strictly by @nobu in https://github.com/ruby/net-imap/pull/152
- Fix for Digest MD5 bad challenges by @nobu in https://github.com/ruby/net-imap/pull/160
- π₯ Work around missing server responses by @nevans in https://github.com/ruby/net-imap/pull/192
β»οΈ Changed
- π Improve parse error debugging by @nevans in https://github.com/ruby/net-imap/pull/105
- π Move the StringPrep module out of SASL by @nevans in https://github.com/ruby/net-imap/pull/100
- β π Move most parser tests to yaml, add more tests, and add parser benchmarks by @nevans in https://github.com/ruby/net-imap/pull/103
- π§ͺ Add Regexp.linear_time? tests; β‘β Update BEG_REGEXP to pass by @nevans in https://github.com/ruby/net-imap/pull/145
- β‘β Update more regexps to run in linear time by @nevans in https://github.com/ruby/net-imap/pull/147
- π§ͺ Add experimental new FakeServer for tests by @nevans in https://github.com/ruby/net-imap/pull/157
- β±οΈ Add Timeout to several existing SSL tests by @nevans in https://github.com/ruby/net-imap/pull/163
- β»οΈ Use Net::IMAP::FakeServer::TestHelper by @nevans in https://github.com/ruby/net-imap/pull/164
- π Move and rename SASL authenticators by @nevans in https://github.com/ruby/net-imap/pull/165
- β»οΈ Simplify lazy-loaded SASL::{Name}Authenticator registration by @nevans in https://github.com/ruby/net-imap/pull/168
π Documentation
- π Add "rake ghpages" for publishing rdoc by @nevans in https://github.com/ruby/net-imap/pull/102
- π Auto-deploy GitHub Pages from an action by @nevans in https://github.com/ruby/net-imap/pull/135
- π More rdoc updates, all related to capabilities by @nevans in https://github.com/ruby/net-imap/pull/159
- SASL doc updates by @nevans in https://github.com/ruby/net-imap/pull/166
- π Update SASL docs and add attr_readers by @nevans in https://github.com/ruby/net-imap/pull/176
- π Update examples with modern SASL mechanisms by @nevans in https://github.com/ruby/net-imap/pull/182
Miscellaneous
- Adds Ruby 3.2 to the CI matrix. by @petergoldstein in https://github.com/ruby/net-imap/pull/99
- Bump ruby/setup-ruby from 1.143.0 to 1.144.0 by @dependabot in https://github.com/ruby/net-imap/pull/138
- β Add RFC3454 data, to support offline testing by @nevans in https://github.com/ruby/net-imap/pull/137
- β¬οΈ Bump actions/deploy-pages from 1 to 2 by @dependabot in https://github.com/ruby/net-imap/pull/140
- β¬οΈ Bump ruby/setup-ruby from 1.144.0 to 1.144.1 by @dependabot in https://github.com/ruby/net-imap/pull/139
- β¬οΈ Bump ruby/setup-ruby from 1.144.1 to 1.144.2 by @dependabot in https://github.com/ruby/net-imap/pull/141
- Bump ruby/setup-ruby from 1.144.2 to 1.145.0 by @dependabot in https://github.com/ruby/net-imap/pull/142
- Bump ruby/setup-ruby from 1.145.0 to 1.146.0 by @dependabot in https://github.com/ruby/net-imap/pull/143
- Bump ruby/setup-ruby from 1.146.0 to 1.148.0 by @dependabot in https://github.com/ruby/net-imap/pull/148
- Bump ruby/setup-ruby from 1.148.0 to 1.149.0 by @dependabot in https://github.com/ruby/net-imap/pull/149
- Use test-unit-ruby-core from vendored code by @hsbt in https://github.com/ruby/net-imap/pull/151
- Bump ruby/setup-ruby from 1.149.0 to 1.150.0 by @dependabot in https://github.com/ruby/net-imap/pull/150
- Bump ruby/setup-ruby from 1.150.0 to 1.151.0 by @dependabot in https://github.com/ruby/net-imap/pull/153
- β¬οΈ Bump ruby/setup-ruby from 1.151.0 to 1.152.0 by @dependabot in https://github.com/ruby/net-imap/pull/155
- Bump actions/upload-pages-artifact from 1 to 2 by @dependabot in https://github.com/ruby/net-imap/pull/158
- Bump actions/checkout from 3 to 4 by @dependabot in https://github.com/ruby/net-imap/pull/173
New Contributors
- @petergoldstein made their first contribution in https://github.com/ruby/net-imap/pull/99
- @arnt made their first contribution in https://github.com/ruby/net-imap/pull/114
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.4...v0.4.0
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.3.7
What's Changed
- ποΈ Backport: Fix for Digest MD5 bad challenges by @nobu in https://github.com/ruby/net-imap/pull/160
- PR for backport is https://github.com/ruby/net-imap/pull/161
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.6...v0.3.7
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.3.6
- π Fixes file permissions regression in v0.3.5 release, reported by @aaronjensen in #154
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.3.5
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.4...v0.3.5
- π Fix #response documentation error, by @nevans in https://github.com/ruby/net-imap/commit/87ba74ebc054b9e8f3d8f26843ce5b974dbfe5ca
- β Add RFC3454 data, to support offline testing, by @nevans in https://github.com/ruby/net-imap/pull/137
- Adds Ruby 3.2 to the CI matrix, by @petergoldstein in https://github.com/ruby/net-imap/pull/99
- Use reusing workflow, by @hsbt in https://github.com/ruby/net-imap/pull/151
- Decode UTF-7 more strictly, by @nobu in https://github.com/ruby/net-imap/pull/152
- β¬οΈ Continue testing 0.3.x branch against ruby 2.6, by @nevans in https://github.com/ruby/net-imap/commit/115d19044e1c9ad1f834d0a4cecbc65d8faf9d00
- β Fix decode utf-7 test for ruby 2.6, by @nevans in https://github.com/ruby/net-imap/commit/7a60c8f905deeae8e64588f174f33ef875dfba53
- π Fix XOAUTH2 authenticator for ruby 2.6, by @nevans in https://github.com/ruby/net-imap/commit/bd4faa03f87b64cab072e044834bfe5374fa4eb9
- Ruby
Published by nevans over 2 years ago
https://github.com/ruby/net-imap - v0.3.4
What's Changed
- Net::IMAP Client docs by @nevans in https://github.com/ruby/net-imap/pull/74
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.3...v0.3.4
- Ruby
Published by hsbt about 3 years ago
https://github.com/ruby/net-imap - v0.3.3
What's Changed
- Revert "Fixes "bundle exec rake", clash with test/unit" by @znz in https://github.com/ruby/net-imap/pull/88
New Contributors
- @znz made their first contribution in https://github.com/ruby/net-imap/pull/88
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.2...v0.3.3
- Ruby
Published by hsbt about 3 years ago
https://github.com/ruby/net-imap - v0.3.2
What's Changed
- Support
UIDPLUSextension by @hoffi in https://github.com/ruby/net-imap/pull/65 - Fixes "bundle exec rake" clash with test/unit by @nevans in https://github.com/ruby/net-imap/pull/67
- Fix some UIDPLUS issues by @nevans in https://github.com/ruby/net-imap/pull/69
- Fixes date-time format, and adds decode_datetime by @nevans in https://github.com/ruby/net-imap/pull/66
- Add SASLprep. Code generated & tested with RFC3454 by @nevans in https://github.com/ruby/net-imap/pull/64
- Add the UNSELECT command by @nevans in https://github.com/ruby/net-imap/pull/72
- π Fix mailbox attrs by @nevans in https://github.com/ruby/net-imap/pull/73
- RFCs and references by @nevans in https://github.com/ruby/net-imap/pull/71
- Nodocs and remove warning by @nevans in https://github.com/ruby/net-imap/pull/70
- ResponseParser docs by @nevans in https://github.com/ruby/net-imap/pull/76
- Response Data docs by @nevans in https://github.com/ruby/net-imap/pull/75
New Contributors
- @hoffi made their first contribution in https://github.com/ruby/net-imap/pull/65
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.1...v0.3.2
- Ruby
Published by hsbt about 3 years ago
https://github.com/ruby/net-imap - v0.3.1
What's Changed
- Add XOAUTH2 authenticator by @ssunday in https://github.com/ruby/net-imap/pull/63
New Contributors
- @ssunday made their first contribution in https://github.com/ruby/net-imap/pull/63
Full Changelog: https://github.com/ruby/net-imap/compare/v0.3.0...v0.3.1
- Ruby
Published by hsbt over 3 years ago
https://github.com/ruby/net-imap - v0.3.0
What's Changed
- Added dependabot.yml for actions by @hsbt in https://github.com/ruby/net-imap/pull/59
- Bump actions/checkout from 2 to 3 by @dependabot in https://github.com/ruby/net-imap/pull/60
- Adding RFC licenses by @nevans in https://github.com/ruby/net-imap/pull/57
- Warn when using deprecated SASL mechanisms by @nevans in https://github.com/ruby/net-imap/pull/62
New Contributors
- @dependabot made their first contribution in https://github.com/ruby/net-imap/pull/60
Full Changelog: https://github.com/ruby/net-imap/compare/v0.2.3...v0.3.0
- Ruby
Published by hsbt over 3 years ago
https://github.com/ruby/net-imap - v0.2.3
What's Changed
- Update the required ruby version by @nobu in https://github.com/ruby/net-imap/pull/25
- Move NumValidator and Errors to other files by @nevans in https://github.com/ruby/net-imap/pull/27
- Remove max_flag_count. Ruby 2.2+ can GC symbols. by @nevans in https://github.com/ruby/net-imap/pull/26
- Add and document flags from RFC9051 by @nevans in https://github.com/ruby/net-imap/pull/28
- s/RubyVM::JIT/RubyVM::MJIT/g by @k0kubun in https://github.com/ruby/net-imap/pull/51
- Don't install bin directory by @voxik in https://github.com/ruby/net-imap/pull/53
New Contributors
- @nobu made their first contribution in https://github.com/ruby/net-imap/pull/25
- @k0kubun made their first contribution in https://github.com/ruby/net-imap/pull/51
- @voxik made their first contribution in https://github.com/ruby/net-imap/pull/53
Full Changelog: https://github.com/ruby/net-imap/compare/v0.2.2...v0.2.3
- Ruby
Published by hsbt over 3 years ago
https://github.com/ruby/net-imap - v0.2.2
What's Changed
- CI: Quote "3.0" in matrix by @olleolleolle in https://github.com/ruby/net-imap/pull/19
- Fix typo intentionaly -> intentionally [ci skip] by @kamipo in https://github.com/ruby/net-imap/pull/20
- Extract authenticators to their own files by @nevans in https://github.com/ruby/net-imap/pull/22
New Contributors
- @olleolleolle made their first contribution in https://github.com/ruby/net-imap/pull/19
- @kamipo made their first contribution in https://github.com/ruby/net-imap/pull/20
Full Changelog: https://github.com/ruby/net-imap/compare/v0.2.1...v0.2.2
- Ruby
Published by hsbt over 3 years ago
https://github.com/ruby/net-imap - v0.2.1
What's Changed
- Set timeout for IDLE responses by @shugo in https://github.com/ruby/net-imap/pull/15
New Contributors
- @shugo made their first contribution in https://github.com/ruby/net-imap/pull/15
Full Changelog: https://github.com/ruby/net-imap/compare/v0.2.0...v0.2.1
- Ruby
Published by hsbt over 3 years ago
https://github.com/ruby/net-imap - v0.2.0
What's Changed
- Add Net::IMAP::IgnoredResponse by @c-leroy in https://github.com/ruby/net-imap/pull/3
- Capability in response code by @nevans in https://github.com/ruby/net-imap/pull/6
- Extract public Net::IMAP.authenticator by @nevans in https://github.com/ruby/net-imap/pull/7
- Convert
sendto__send__by @nevans in https://github.com/ruby/net-imap/pull/13 - add BADCHARSET support by @nevans in https://github.com/ruby/net-imap/pull/9
New Contributors
- @c-leroy made their first contribution in https://github.com/ruby/net-imap/pull/3
Full Changelog: https://github.com/ruby/net-imap/compare/v0.1.1...v0.2.0
- Ruby
Published by hsbt over 3 years ago
https://github.com/ruby/net-imap - v0.1.1
Full Changelog: https://github.com/ruby/net-imap/compare/v0.1.0...v0.1.1
- Ruby
Published by hsbt over 3 years ago
https://github.com/ruby/net-imap - v0.1.0
What's Changed
- Use GitHub Actions instead of Travis CI by @hsbt in https://github.com/ruby/net-imap/pull/1
Full Changelog: https://github.com/ruby/net-imap/commits/v0.1.0
- Ruby
Published by hsbt over 3 years ago