schleuder issueshttps://0xacab.org/schleuder/schleuder/-/issues2022-04-11T21:47:51Zhttps://0xacab.org/schleuder/schleuder/-/issues/498undefined method `has_content_type?' for nil:NilClass2022-04-11T21:47:51Zngundefined method `has_content_type?' for nil:NilClassthis looks similar to #458 but it was seen on a 3.5.3 schleuder installation.
```
undefined method `has_content_type?' for nil:NilClass
/opt/schleuder/bundler/ruby/2.7.0/gems/mail-gpg-0.4.2/lib/mail/gpg/sign_part.rb:22:in `verify_signat...this looks similar to #458 but it was seen on a 3.5.3 schleuder installation.
```
undefined method `has_content_type?' for nil:NilClass
/opt/schleuder/bundler/ruby/2.7.0/gems/mail-gpg-0.4.2/lib/mail/gpg/sign_part.rb:22:in `verify_signature'
/opt/schleuder/bundler/ruby/2.7.0/gems/mail-gpg-0.4.2/lib/mail/gpg/mime_signed_message.rb:9:in `setup'
/opt/schleuder/bundler/ruby/2.7.0/gems/mail-gpg-0.4.2/lib/mail/gpg.rb:144:in `verify'
/opt/schleuder/bundler/ruby/2.7.0/gems/mail-gpg-0.4.2/lib/mail/gpg/message_patch.rb:91:in `verify'
/opt/schleuder/lib/schleuder/mail/message.rb:31:in `setup'
/opt/schleuder/lib/schleuder/runner.rb:38:in `run'
/opt/schleuder/lib/schleuder/cli.rb:36:in `work'
/opt/schleuder/bundler/ruby/2.7.0/gems/thor-0.20.3/lib/thor/command.rb:27:in `run'
/opt/schleuder/bundler/ruby/2.7.0/gems/thor-0.20.3/lib/thor/invocation.rb:126:in `invoke_command'
/opt/schleuder/bundler/ruby/2.7.0/gems/thor-0.20.3/lib/thor.rb:387:in `dispatch'
/opt/schleuder/bundler/ruby/2.7.0/gems/thor-0.20.3/lib/thor/base.rb:466:in `start'
/opt/schleuder/bin/schleuder:13:in `<top (required)>'
/opt/schleuder/bundler/ruby/2.7.0/bin/schleuder:23:in `load'
/opt/schleuder/bundler/ruby/2.7.0/bin/schleuder:23:in `<top (required)>'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `load'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:63:in `kernel_load'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/cli/exec.rb:28:in `run'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/cli.rb:476:in `exec'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor.rb:399:in `dispatch'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/cli.rb:30:in `dispatch'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/vendor/thor/lib/thor/base.rb:476:in `start'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/cli.rb:24:in `start'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/libexec/bundle:46:in `block in <top (required)>'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/lib/bundler/friendly_errors.rb:123:in `with_friendly_errors'
/opt/rh/rh-ruby27/root/usr/share/gems/gems/bundler-2.1.4/libexec/bundle:34:in `<top (required)>'
/opt/rh/rh-ruby27/root/usr/bin/bundle:23:in `load'
/opt/rh/rh-ruby27/root/usr/bin/bundle:23:in `<main>'
```
Original email is available. Will need to validate it with schleuder 4 and then also whether I can easily reproduce it.ngnghttps://0xacab.org/schleuder/schleuder/-/issues/497Consider setting Mail-Followup-To header when Reply-To is set to original sender2021-06-01T19:57:48Zabc defConsider setting Mail-Followup-To header when Reply-To is set to original senderWhen REPLY-TO is set to the original sender, users have complained that when they hit "Reply-All" (Reply-To-All) in their clients, they expect to send a mail to the original sender AND the list (`FROM(list)+REPLY-TO(original sender)+TO(r...When REPLY-TO is set to the original sender, users have complained that when they hit "Reply-All" (Reply-To-All) in their clients, they expect to send a mail to the original sender AND the list (`FROM(list)+REPLY-TO(original sender)+TO(recipient)+CC`). Instead, the TO header is set to `REPLY-TO(original sender)+TO(recipient)+CC` and thus not including the list.
I investigated this and it seems that most mail clients [follow this procedure](https://wiki.mozilla.org/Thunderbird:Help_Documentation:Mail-Followup-To_and_Mail-Reply-To) for "Reply All":
```
if MAIL-FOLLOWUP-TO in received mail then use MAIL-FOLLOWUP-TO as TO
else if MAIL-REPLY-TO in received mail then use MAIL-REPLY-TO + TO + CC as TO
else if REPLY-TO in received mail then use REPLY-TO + TO + CC as TO # this
else use FROM + TO + CC as TO
```
This means, when schleuder is configured to set REPLY-TO to the original sender, the clients will set TO to `REPLY-TO (original sender) + TO (recipient) + CC`, which does NOT include the mailing list.
Thus I would suggest to add a MAIL-FOLLOWUP-TO header **when REPLY-TO is set to the original sender**. The MAIL-FOLLOWUP-TO header then includes:
- list
- original sender
- CC
If you don't see any problems, I would implement this and open a MR. Please let me know :)https://0xacab.org/schleuder/schleuder/-/issues/494Delete subscription & key together2021-07-07T11:42:38ZngDelete subscription & key togetherHave an option to delete a subscription together with the key. Atm it is a two step process to delete a subscription and than its key. Which is a bit tediousHave an option to delete a subscription together with the key. Atm it is a two step process to delete a subscription and than its key. Which is a bit tedioushttps://0xacab.org/schleuder/schleuder/-/issues/493Bulk delete all unused key2021-07-07T11:42:36ZngBulk delete all unused keyit would be great if there was an option to delete all unused keys from a lists's keyring. So it can be cleaned up.it would be great if there was an option to delete all unused keys from a lists's keyring. So it can be cleaned up.https://0xacab.org/schleuder/schleuder/-/issues/492Running db:init on schleuder install might not be suitable for external DB ad...2021-11-07T20:01:07ZngRunning db:init on schleuder install might not be suitable for external DB adapters with less privileged usersIf you have your schleuder DB in a DBMS (e.g. postgresql) you likely have a user that is not privileged to create the database.
However, on `schleuder install` we blindly do `db:create` which fails.
Related code snippets:
* https://0x...If you have your schleuder DB in a DBMS (e.g. postgresql) you likely have a user that is not privileged to create the database.
However, on `schleuder install` we blindly do `db:create` which fails.
Related code snippets:
* https://0xacab.org/schleuder/schleuder/-/blob/18c1e07a5c414e3ac7d42a495b95603f1a5da837/lib/schleuder/cli.rb#L116
* https://0xacab.org/schleuder/schleuder/-/commit/2ee7f06015a82d5a88e98e8859e15efcb98a7a78
Not sure if we should point it out , be more clever or just document it. Or everybody (except me) runs out of sqlite.https://0xacab.org/schleuder/schleuder/-/issues/489Feature Request: (Add option to) publish list-key to web key directory2021-05-25T22:30:55Zlu xFeature Request: (Add option to) publish list-key to web key directory**Problem:**
Since many mailclients are moving from SKS to verified keyservers and WKD, it has become rather cumbersome to publish a whole list key.
For example, when publishing a key to keys.openpgp.org, you would need to verify the ...**Problem:**
Since many mailclients are moving from SKS to verified keyservers and WKD, it has become rather cumbersome to publish a whole list key.
For example, when publishing a key to keys.openpgp.org, you would need to verify the identity for its sub-identites too (list-request or list-owner), and for an encrypted-only list you would need to fish the verification link out of the attachment of the bounce-notification
(I am aware that you can write to list-sendkey for the public key, but many schleuder users are either not aware or generally alienated by the idea of managing a subscription via mail commands)
**Solution**
It would be great if schleuder could publish it's list keys via web key directory.
`GnuPG >= 2.2.14` [includes a web key service](https://wiki.gnupg.org/WKS), so this might be possible without adding additional dependencies to schleuder.
I do not know ruby (yet) and my programming experience is almost none, but if you approve the idea I could a look at the codebase and see if I can do a contribution (..and maybe you already know a convenient way to do this and can point me to the direction :smile: )https://0xacab.org/schleuder/schleuder/-/issues/485Improve helpfulness of error messages in response to keywords2021-02-03T11:37:07ZpazImprove helpfulness of error messages in response to keywordsE.g. If a resend fails due to a string not being a valid email-address.E.g. If a resend fails due to a string not being a valid email-address.Next Big Thinghttps://0xacab.org/schleuder/schleuder/-/issues/482Please be more informative when you can't encrypt to a list-admin2021-01-18T23:47:57ZcasperPlease be more informative when you can't encrypt to a list-adminSchleuder 3.4.0-2+deb10u3 did sent this uninformative message (Subject: "Error"), when it couldn't find a matching key to one of the list-administrators.
```
No keys to encrypt to!
/usr/lib/ruby/vendor_ruby/mail/gpg/gpgme_helper.rb:17:...Schleuder 3.4.0-2+deb10u3 did sent this uninformative message (Subject: "Error"), when it couldn't find a matching key to one of the list-administrators.
```
No keys to encrypt to!
/usr/lib/ruby/vendor_ruby/mail/gpg/gpgme_helper.rb:17:in `encrypt'
/usr/lib/ruby/vendor_ruby/mail/gpg/encrypted_part.rb:23:in `initialize'
/usr/lib/ruby/vendor_ruby/schleuder/mail/encrypted_part.rb:10:in `initialize'
/usr/lib/ruby/vendor_ruby/mail/gpg.rb:43:in `new'
/usr/lib/ruby/vendor_ruby/mail/gpg.rb:43:in `block in encrypt'
/usr/lib/ruby/vendor_ruby/mail/gpg.rb:113:in `instance_eval'
/usr/lib/ruby/vendor_ruby/mail/gpg.rb:113:in `block in construct_mail'
/usr/lib/ruby/vendor_ruby/mail/message.rb:153:in `instance_eval'
/usr/lib/ruby/vendor_ruby/mail/message.rb:153:in `initialize'
/usr/lib/ruby/vendor_ruby/mail/mail.rb:51:in `new'
/usr/lib/ruby/vendor_ruby/mail/mail.rb:51:in `new'
/usr/lib/ruby/vendor_ruby/mail/gpg.rb:106:in `construct_mail'
/usr/lib/ruby/vendor_ruby/mail/gpg.rb:29:in `encrypt'
/usr/lib/ruby/vendor_ruby/schleuder/mail/gpg.rb:7:in `encrypt'
/usr/lib/ruby/vendor_ruby/mail/gpg/delivery_handler.rb:11:in `deliver_mail'
/usr/lib/ruby/vendor_ruby/mail/message.rb:260:in `deliver'
/usr/lib/ruby/vendor_ruby/schleuder/logger_notifications.rb:48:in `block in notify_admin'
/usr/lib/ruby/vendor_ruby/schleuder/logger_notifications.rb:29:in `each'
/usr/lib/ruby/vendor_ruby/schleuder/logger_notifications.rb:29:in `notify_admin'
/usr/lib/ruby/vendor_ruby/schleuder/logger_notifications.rb:13:in `error'
/usr/lib/ruby/vendor_ruby/schleuder/list.rb:356:in `rescue in block in send_to_subscriptions'
/usr/lib/ruby/vendor_ruby/schleuder/list.rb:347:in `block in send_to_subscriptions'
/usr/share/rubygems-integration/all/gems/activerecord-5.2.2.1/lib/active_record/relation/delegation.rb:71:in `each'
/usr/share/rubygems-integration/all/gems/activerecord-5.2.2.1/lib/active_record/relation/delegation.rb:71:in `each'
/usr/lib/ruby/vendor_ruby/schleuder/list.rb:346:in `send_to_subscriptions'
/usr/lib/ruby/vendor_ruby/schleuder/runner.rb:77:in `run'
/usr/lib/ruby/vendor_ruby/schleuder/cli.rb:36:in `work'
/usr/lib/ruby/vendor_ruby/thor/command.rb:27:in `run'
/usr/lib/ruby/vendor_ruby/thor/invocation.rb:126:in `invoke_command'
/usr/lib/ruby/vendor_ruby/thor.rb:369:in `dispatch'
/usr/lib/ruby/vendor_ruby/thor/base.rb:444:in `start'
/usr/bin/schleuder:13:in `<main>'
```
To debug, I made everyone a simple user but me. Once the problematic account was a simple user, schleuder would send:
```
The following error occurred while sending a message to user@example.org: No keys to encrypt to!
```https://0xacab.org/schleuder/schleuder/-/issues/477CI: Add job to validate open api spec2020-06-24T13:51:07ZgeorgCI: Add job to validate open api specNext Big Thinggeorggeorghttps://0xacab.org/schleuder/schleuder/-/issues/475Tell users that mails needs to be validly signed to use keywords2020-06-17T13:35:56ZgeorgTell users that mails needs to be validly signed to use keywordsWe could think about if it would make sense, in terms of UX, to provide a helpful error message in case a mail wasn't signed, but it contained keywords.
Currently, that's not easy to do, because we only look for keywords if the mail was...We could think about if it would make sense, in terms of UX, to provide a helpful error message in case a mail wasn't signed, but it contained keywords.
Currently, that's not easy to do, because we only look for keywords if the mail was signed. I'm not sure how to tackle this, maybe via a "best effort" approach, via a superficial scan of the mail?
Any opinion?https://0xacab.org/schleuder/schleuder/-/issues/474Inform user if unknown keyword was encountered and keyword-processing aborted2020-06-17T11:46:38ZgeorgInform user if unknown keyword was encountered and keyword-processing abortedThe current code correctly checks for unknown keywords and prepares an error message. However, this error message isn't passed back to the user.The current code correctly checks for unknown keywords and prepares an error message. However, this error message isn't passed back to the user.Next Big Thinghttps://0xacab.org/schleuder/schleuder/-/issues/471List option to opt-out of check_keys mails2020-06-02T11:40:20ZgeorgList option to opt-out of check_keys mailsPeople told me that they would find it valuable to be able to not receive mails sent by `check_keys` for specific lists.People told me that they would find it valuable to be able to not receive mails sent by `check_keys` for specific lists.https://0xacab.org/schleuder/schleuder/-/issues/464Add keyword to configure `delivery_enabled`.2020-03-22T11:46:09ZpazAdd keyword to configure `delivery_enabled`.Currently there's no way to configure that using Email after subscribing. That should be possible.Currently there's no way to configure that using Email after subscribing. That should be possible.https://0xacab.org/schleuder/schleuder/-/issues/463Add spec to check if invalid chars get dropped as expected during initial mai...2020-03-22T12:20:12ZgeorgAdd spec to check if invalid chars get dropped as expected during initial mail parsingWe've changed the way how we handle initial mail encoding parsing via !325. If all fails, we might drop invalid chars to at least be able to handle the rest of problematic mails. However, as of now, we didn't found a way to trigger such ...We've changed the way how we handle initial mail encoding parsing via !325. If all fails, we might drop invalid chars to at least be able to handle the rest of problematic mails. However, as of now, we didn't found a way to trigger such a case.Next Big Thinghttps://0xacab.org/schleuder/schleuder/-/issues/461Provide script to sanitize real world example mails2020-03-19T22:03:17ZgeorgProvide script to sanitize real world example mailsFeeding our issue tracker with real world example mails takes time due to doing "data hygiene". I plan to write a script, which, if given a mail file, writes out a sanitized copy. Obviously, before publishing, people should still check t...Feeding our issue tracker with real world example mails takes time due to doing "data hygiene". I plan to write a script, which, if given a mail file, writes out a sanitized copy. Obviously, before publishing, people should still check the result. Probably, this takes a bit of time to do some iterations, to make it better. Lets start?georggeorghttps://0xacab.org/schleuder/schleuder/-/issues/459Convert all text-parts to UTF-8?2020-03-22T21:57:46ZpazConvert all text-parts to UTF-8?If we would convert all incoming text-parts (or anything that has a charset) into UTF-8, we might have less trouble with the 'mail' gem. E.g. in https://github.com/mikel/mail/pull/738#issuecomment-303083226 the maintainers explain that t...If we would convert all incoming text-parts (or anything that has a charset) into UTF-8, we might have less trouble with the 'mail' gem. E.g. in https://github.com/mikel/mail/pull/738#issuecomment-303083226 the maintainers explain that they always prefer converting to UTF-8, regardless of what the original charset header says.
Actually, changing the charset-header to 'UTF-8' (instead of re-encoding the text) in [schleuder/mail/message.rb:254](https://0xacab.org/schleuder/schleuder/blob/master/lib/schleuder/mail/message.rb#L254) makes our test-suite green even with mail-gpg v.0.4.3 (see #455).
From a technical standpoint I don't see a problem changing all parts to UTF-8. I would even advocate for it, because it standardises on a modern solution.
But I can't really judge how many computers out there still don't know UTF-8 and would show broken texts.
Any opinion?https://0xacab.org/schleuder/schleuder/-/issues/456Wrong permissions after Installation from gem2020-05-26T13:25:57ZMichael WodniokWrong permissions after Installation from gem## Expected Behavior
schleuder-api-daemon runs with out errors as non-root.
## Actual Behavior
schleuder-api-daemon dies with stacktraces like in "Other information". The workaround is to run a `chmod -R a+x /var/lib/gems/2.5.0/gems/sch...## Expected Behavior
schleuder-api-daemon runs with out errors as non-root.
## Actual Behavior
schleuder-api-daemon dies with stacktraces like in "Other information". The workaround is to run a `chmod -R a+x /var/lib/gems/2.5.0/gems/schleuder-3.4.1/lib` (on Ubuntu 18.04).
## Steps to Reproduce the Problem
1. Install from gem as root on your system including `schleuder install`
2. Try to start schleuder-api-daemon as non-root
## Specifications
- Version: 3.4.1
- Installation method (package, gem...): gem
- Mail client version: non-relevant
## Other information
Stacktrace:
```
Traceback (most recent call last):
13: from /usr/local/bin/schleuder-api-daemon:23:in `<main>'
12: from /usr/local/bin/schleuder-api-daemon:23:in `load'
11: from /var/lib/gems/2.5.0/gems/schleuder-3.4.1/bin/schleuder-api-daemon:4:in `<top (required)>'
10: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
9: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
8: from /var/lib/gems/2.5.0/gems/schleuder-3.4.1/lib/schleuder-api-daemon.rb:11:in `<top (required)>'
7: from /var/lib/gems/2.5.0/gems/backports-3.16.0/lib/backports/std_lib.rb:9:in `require_with_backports'
6: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
5: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
4: from /var/lib/gems/2.5.0/gems/schleuder-3.4.1/lib/schleuder.rb:23:in `<top (required)>'
3: from /var/lib/gems/2.5.0/gems/backports-3.16.0/lib/backports/std_lib.rb:9:in `require_with_backports'
2: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
1: from /usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
/usr/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require': cannot load such file -- schleuder/mail/parts_list.rb (LoadError)
```https://0xacab.org/schleuder/schleuder/-/issues/452Ruby-Bindings for Sequoia2021-09-03T07:04:12ZdorleRuby-Bindings for Sequoia@sssggr @paz I am working on ruby-bindings for the openpgp library sequoia and i just uploaded the current state of the ruby bindings for sequoia at:
https://gitlab.com/dorle/sequoia-ruby-ffi
Maybe you could check it out and use it as...@sssggr @paz I am working on ruby-bindings for the openpgp library sequoia and i just uploaded the current state of the ruby bindings for sequoia at:
https://gitlab.com/dorle/sequoia-ruby-ffi
Maybe you could check it out and use it as a starting point for a discussion about the interface to openpgp. On which layer of abstraction do you want to use openpgp? Which features do you need and which features do you wish for? What is akward to use now and how would it be better to use?
I would like to use the discussion to decide in which direction i am going to work further on the bindings :)https://0xacab.org/schleuder/schleuder/-/issues/439Automatically fetch keys from validating sources2024-01-12T11:13:36ZpazAutomatically fetch keys from validating sourcesLet's make Schleuder:
1. automatically fetch keys for each recipient without key (regardless of subscription or third-party), but only from validating sources (WKD and validating keyservers).
2. update keys also only from validating sou...Let's make Schleuder:
1. automatically fetch keys for each recipient without key (regardless of subscription or third-party), but only from validating sources (WKD and validating keyservers).
2. update keys also only from validating sources,
3. drop `x-fetch-key`.
For most users this would make sending encrypted emails easier. And we would push the use of better key sources, driving people away from still using SKS keyservers, or sending plain text email.
Those users that require more manual control still can use `x-add-key` to get a manually downloaded key from a different source into the list's keyring.
The only downside I see is that Schleuder would repeatedly make network requests for email addresses that don't have a key published in any of the sources. I'd accept that as a small price.
Related to #435Futurepazpazhttps://0xacab.org/schleuder/schleuder/-/issues/438allow encrypted resending to one specific fingerprint2019-10-16T20:50:51Zxgxwznwadxfallow encrypted resending to one specific fingerprintfrom time to time it happens, that we have to send encrypted mails to an address using a key which doesn't "match"
for example:.
* when no e-mail was given while key creation
* when collectives give out the key of the only tech-savy m...from time to time it happens, that we have to send encrypted mails to an address using a key which doesn't "match"
for example:.
* when no e-mail was given while key creation
* when collectives give out the key of the only tech-savy member (for using it with the collective e-mail-adress)
is there already a way to do this?
if not, one of this two options would be nice:
1. allow adding a key to the list and specify manually which address it belongs to
e.g. "x-add-key correspondingmailaddres"
2. allow to specify a fingerprint while using x-resend commands
e.g. "x-resend-encrypted-only: onemailadress correspondingfingerprint"