Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: Add documentation for iOS mail push support #3513

Merged

Conversation

reneploetz
Copy link
Contributor

Description

Adds documentation on how to enable iOS Mail push support as discussed here: https://github.com/orgs/docker-mailserver/discussions/3432

While this might be of limited use for most people (you need to be enrolled in Apples Developer program to set it up), it still might be interesting to some.
As stated before you need to build a custom image to include the plugin and daemon executable. We could add this to the base image if there is more demand, tough this will increase the size by about 9 MB.
I would also be willing to create a pull request that would support this feature out-of-the-box if needed.

Although I tried to be as descriptive as possible to explain the steps one needs to take, it still might need some tweaking. Feedback is very welcome!

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Improvement (non-breaking change that does improve existing functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • [?] My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • [-] I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (README.md or the documentation under docs/)
  • [-] If necessary I have added tests that prove my fix is effective or that my feature works
  • [-] New and existing unit tests pass locally with my changes

Signed-off-by: René Plötz <reneploetz@users.noreply.github.com>
Copy link
Member

@polarathene polarathene left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solid work! 💪

Docs contribution is the way to go for now. The FTS Xapian plugin is usually provided via a package from the distro, but as it's already part of DMS an exception was made to temporarily allow building it for compatibility with the Dovecot community repo (which caused the incompatibility issue). Dovecot community repo being a newer version than what the newer Debian 12 release provides is also holding us back there, so likely to revert back to distro package only when possible due to issues that has caused.

We are considering changing to a different base image (Fedora and Alpine have been somewhat assessed), but while they both have a package for FTS Xapian, I did not see one for the plugin you're documenting here, which makes that much less likely to land into DMS.

There's potential for shifting existing contributed features to separate image to offload the maintenance burden from the core image. If that ever happens bringing in the change is probably viable for maintainers to accept.

docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
cmake .. -DCMAKE_BUILD_TYPE=Release && \
make install

FROM golang:1.19-alpine AS dovecot-xaps-daemon
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
FROM golang:1.19-alpine AS dovecot-xaps-daemon
FROM golang:1.21-alpine AS dovecot-xaps-daemon

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version is deliberately older - there is a known bug: freswa/dovecot-xaps-daemon#24
I did not check if the issue still exists tough.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's an important detail to include if that's the case. You should reference this comment from the issue to explain the pinned version.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested it - the issue persists. The Apple servers still send invalid http headers that Go > 1.20 does not like. Added comment for this.

docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
docs/content/config/advanced/ios-mail-push-support.md Outdated Show resolved Hide resolved
docs/mkdocs.yml Outdated Show resolved Hide resolved
@polarathene polarathene added kind/new feature A new feature is requested in this issue or implemeted with this PR service/dovecot area/features area/documentation labels Aug 29, 2023
@polarathene polarathene added this to the v13.0.0 milestone Aug 29, 2023
Signed-off-by: René Plötz <reneploetz@users.noreply.github.com>
Signed-off-by: René Plötz <reneploetz@users.noreply.github.com>
Signed-off-by: René Plötz <reneploetz@users.noreply.github.com>
Signed-off-by: René Plötz <reneploetz@users.noreply.github.com>
Signed-off-by: René Plötz <reneploetz@users.noreply.github.com>
Copy link
Member

@polarathene polarathene left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! 💪

Great work putting this together, thanks for the detailed contribution to the docs! ❤️

Comment on lines +224 to +230
Both device registration and notifications send a username to the daemon to lookup the device. While the registration and other IMAP operations in Dovecot will send the Dovecot username, LMTP will send the provided authentication username.

The format of that username is specified by the `auth_username_format` Dovecot setting. If you are not using mail addresses as Dovecot usernames - e.g. when using LDAP - you can either change the `auth_username_format` or add the mail address as property to the user account and use the lookup feature (see below).

```sh title="user-patches.sh"
sed -i -r "s|^#?(auth_username_format =).*|\1 %Ln|" /etc/dovecot/conf.d/10-auth.conf
```
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was something I encountered recently while going through LDAP support in DMS, nice to have some proper docs in DMS for that! ❤️

@github-actions
Copy link
Contributor

Documentation preview for this PR is ready! 🎉

Built with commit: 2785a7a

@polarathene polarathene merged commit 3d5f6ae into docker-mailserver:master Aug 29, 2023
3 checks passed
@polarathene polarathene changed the title Add documentation for iOS mail push support docs: Add documentation for iOS mail push support Aug 29, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/documentation area/features kind/new feature A new feature is requested in this issue or implemeted with this PR service/dovecot
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants