mirror of
https://github.com/BookStackApp/BookStack.git
synced 2026-02-07 03:09:44 +03:00
Make MAIL_ENCRYPTION variable less confusing #3883
Closed
opened 2026-02-05 07:45:56 +03:00 by OVERLORD
·
3 comments
No Branch/Tag Specified
development
further_theme_development
l10n_development
release
llm_only
vectors
v25-11
docker_env
drawio_rendering
user_permissions
ldap_host_failover
svg_image
prosemirror
captcha_example
fix/video-export
v25.12.3
v25.12.2
v25.12.1
v25.12
v25.11.6
v25.11.5
v25.11.4
v24.11.4
v25.11.3
v25.11.2
v25.11.1
v25.11
v25.07.3
v25.07.2
v25.07.1
v25.07
v25.05.2
v25.05.1
v25.05
v25.02.5
v25.02.4
v25.02.3
v25.02.2
v25.02.1
v25.02
v24.12.1
v24.12
v24.10.3
v24.10.2
v24.10.1
v24.10
v24.05.4
v24.05.3
v24.05.2
v24.05.1
v24.05
v24.02.3
v24.02.2
v24.02.1
v24.02
v23.12.3
v23.12.2
v23.12.1
v23.12
v23.10.4
v23.10.3
v23.10.2
v23.10.1
v23.10
v23.08.3
v23.08.2
v23.08.1
v23.08
v23.06.2
v23.06.1
v23.06
v23.05.2
v23.05.1
v23.05
v23.02.3
v23.02.2
v23.02.1
v23.02
v23.01.1
v23.01
v22.11.1
v22.11
v22.10.2
v22.10.1
v22.10
v22.09.1
v22.09
v22.07.3
v22.07.2
v22.07.1
v22.07
v22.06.2
v22.06.1
v22.06
v22.04.2
v22.04.1
v22.04
v22.03.1
v22.03
v22.02.3
v22.02.2
v22.02.1
v22.02
v21.12.5
v21.12.4
v21.12.3
v21.12.2
v21.12.1
v21.12
v21.11.3
v21.11.2
v21.11.1
v21.11
v21.10.3
v21.10.2
v21.10.1
v21.10
v21.08.6
v21.08.5
v21.08.4
v21.08.3
v21.08.2
v21.08.1
v21.08
v21.05.4
v21.05.3
v21.05.2
v21.05.1
v21.05
v21.04.6
v21.04.5
v21.04.4
v21.04.3
v21.04.2
v21.04.1
v21.04
v0.31.8
v0.31.7
v0.31.6
v0.31.5
v0.31.4
v0.31.3
v0.31.2
v0.31.1
v0.31.0
v0.30.7
v0.30.6
v0.30.5
v0.30.4
v0.30.3
v0.30.2
v0.30.1
v0.30.0
v0.29.3
v0.29.2
v0.29.1
v0.29.0
v0.28.3
v0.28.2
v0.28.1
v0.28.0
v0.27.5
v0.27.4
v0.27.3
v0.27.2
v0.27.1
v0.27
v0.26.4
v0.26.3
v0.26.2
v0.26.1
v0.26.0
v0.25.5
v0.25.4
v0.25.3
v0.25.2
v0.25.1
v0.25.0
v0.24.3
v0.24.2
v0.24.1
v0.24.0
v0.23.2
v0.23.1
v0.23.0
v0.22.0
v0.21.0
v0.20.3
v0.20.2
v0.20.1
v0.20.0
v0.19.0
v0.18.5
v0.18.4
v0.18.3
v0.18.2
v0.18.1
v0.18.0
v0.17.4
v0.17.3
v0.17.2
v0.17.1
v0.17.0
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.15.3
v0.15.2
v0.15.1
v0.15.0
v0.14.3
v0.14.2
v0.14.1
v0.14.0
v0.13.1
v0.13.0
v0.12.2
v0.12.1
v0.12.0
v0.11.2
v0.11.1
v0.11.0
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.2
v0.8.1
v0.8.0
v0.7.6
v0.7.5
v0.7.4
v0.7.3
0.7.2
v.0.7.1
v0.7.0
v0.6.3
v0.6.2
v0.6.1
v0.6.0
v0.5.0
Labels
Clear labels
🎨 Design
📖 Docs Update
🐛 Bug
🐛 Bug
:cat2:🐈 Possible duplicate
💿 Database
☕ Open to discussion
💻 Front-End
🐕 Support
🚪 Authentication
🌍 Translations
🔌 API Task
🏭 Back-End
⛲ Upstream
🔨 Feature Request
🛠️ Enhancement
🛠️ Enhancement
🛠️ Enhancement
❤️ Happy feedback
🔒 Security
🔍 Pending Validation
💆 UX
📝 WYSIWYG Editor
🌔 Out of scope
🔩 API Request
:octocat: Admin/Meta
🖌️ View Customization
❓ Question
🚀 Priority
🛡️ Blocked
🚚 Export System
♿ A11y
🔧 Maintenance
> Markdown Editor
pull-request
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/BookStack#3883
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @b2ag on GitHub (Jun 24, 2023).
Describe the feature you'd like
Hi,
when first looking at the variable
MAIL_ENCRYPTIONI thought "why do you have GPG for mails?" only to discover it's just refering to encrypting SMTP traffic. I wouldn't call that mail encryption (but who am I to judge).Next I tried to figure why there is only "null", "tls" and "ssl" as options. And what authors think the difference between "tls" and "ssl" might be. I guess no one wants SSL anymore. So I highly doubt "ssl" means lower or equal to SSLv3 ciphers. Now I have this gut feeling "tls" means "STARTTLS" and not just "TLS" but couldn't prove it with source code. So I'm still just guessing.
The whole thing is quite confusing to me and I guess I have to try and error to configure this.
So can you please update those options to clarify what they actually do?
To clarify:
BR
Describe the benefits this would bring to existing BookStack users
I guess there is no benefit for existing users if they are not trying to configure encrypted outgoing SMTP traffic.
Can the goal of this request already be achieved via other means?
Better documentation could work around using better names for those options.
Have you searched for an existing open/closed issue?
How long have you been using BookStack?
Not using yet, just scoping
Additional context
No response
@b2ag commented on GitHub (Jun 24, 2023):
MAIL_VERIFY_SSLcould also be calledMAIL_VERIFY_TLSbut isn't that confusing because it reduces to something like "mail verify certificates".@ssddanbrown commented on GitHub (Jun 24, 2023):
Thanks for raising @b2ag. I agree the current state of things is quite confusing, I've just spent a couple of hours trying to fully understand exactly what's going on, and the changes made over time in terms of mail encryption at the framework and library level.
Current State
Overall, it looks like
MAIL_ENCRYPTIONwas not actually doing anything in the latest releases.SSL encryption is no longer used (and supported in the framework libraries), since we updated the framework earlier this year.
The framework would force TLS usage when
MAIL_ENCRYPTION=tlsandMAIL_PORT=465, but this would occur with anyMAIL_ENCRYPTIONvalue anyway since the underlying mailer library would force TLS over port 465.In non-465-port cases, STARTTLS is attempted.
Functionality Changes
I've just applied
dbb6c87580to force-enable TLS usage whenMAIL_ENCRYPTION=tlsorMAIL_ENCRYPTION=ssl, the latter of which for some level of secure-minded backwards compatibility since, although SSL is no longer specifically supported, we can infer it to mean the user wants encrypted mail communication. This technically could cause a breaking change, so will be something I'd need to add in update notes, but I think the best approach.Again, STARTTLS will remain to be active where where no
MAIL_ENCRYPTIONis set, unless port 465 is used in which case TLS will be required.These changes will be part of the next feature release.
Documentation Changes
On the documentation side of things I've made a set of changes to the docs site and default env files.
Our web documentation now has a fair bit more info on exactly how these settings are used, and the env files within BookStack now refer to our web docs for easier discovery where needed.
I've removed 'ssl' from the displayed
MAIL_ENCRYPTIONoptions, since it's now really redundant, doing the same astls.I've also tweaked the cert verification docs to refer to the connection and mention TLS/SSL so it doesn't seem so SSL specific. I still mention SSL since it's a still a common term for general encryption, and is still common used within the underlying PHP code.
On a related note, I appreciate the options themselves are named badly or awkwardly, but they are based upon, or reflect, underling framework code and I'd prefer to keep them named the same for backwards compat/consistency, but hopefully the other changes (specifically the improved guidance) makes these names a non-issue.
I'll therefore close this off since changes have been applied, but feel free to comment if anything is unclear or if I've made some mistakes somewhere.
Release Docs Todo
MAIL_ENCRYPTION=ssl).@ssddanbrown commented on GitHub (Jul 3, 2023):
Just to follow this up with post-release findings, I made some incorrect assumptions in my thoughts and changes I made above.
I had assumed that services would support TLS and STARTTLS equally at specific SMTP endpoints, but it turns out that is not the case, and there can be SMTP endpoints that expect STARTTLS but won't accept up-front TLS.
Opened as separate issue in #4358.