[GH-ISSUE #7401] Long invitation links (JWT tokens) broken by quoted-printable encoding in some email clients (SOGo / K-9) #35651

Closed
opened 2026-07-13 20:29:10 -05:00 by GiteaMirror · 1 comment
Owner

Originally created by @aronmal on GitHub (Jul 5, 2026).
Original GitHub issue: https://github.com/dani-garcia/vaultwarden/issues/7401

Prerequisites

Vaultwarden Support String

Your environment (Generated via diagnostics page)

  • Vaultwarden version: v1.36.0
  • Web-vault version: v2026.4.1
  • OS/Arch: linux/x86_64
  • Running within a container: true (Base: Debian)
  • Database type: SQLite
  • Database version: 3.51.3
  • Uses config.json: true
  • Uses a reverse proxy: true
  • IP Header check: true (X-Real-IP)
  • Internet access: true
  • Internet access via a proxy: false
  • DNS Check: true
  • TZ environment: Europe/Berlin
  • Browser/Server Time Check: true
  • Server/NTP Time Check: true
  • Domain Configuration Check: true
  • HTTPS Check: true
  • Websocket Check: true
  • HTTP Response Checks: true

Config & Details (Generated via diagnostics page)

Show Config & Details

Environment settings which are overridden: DOMAIN, SIGNUPS_ALLOWED, INVITATIONS_ALLOWED, ADMIN_TOKEN, YUBICO_CLIENT_ID, YUBICO_SECRET_KEY, SMTP_HOST, SMTP_SECURITY, SMTP_PORT, SMTP_FROM, SMTP_USERNAME, SMTP_PASSWORD

Config:

{
  "_duo_akey": null,
  "_enable_duo": false,
  "_enable_email_2fa": true,
  "_enable_smtp": true,
  "_enable_yubico": true,
  "_icon_service_csp": "",
  "_icon_service_url": "",
  "_ip_header_enabled": true,
  "_max_note_size": 10000,
  "_smtp_img_src": "***:",
  "admin_ratelimit_max_burst": 3,
  "admin_ratelimit_seconds": 300,
  "admin_session_lifetime": 20,
  "admin_token": "***",
  "allowed_connect_src": "",
  "allowed_iframe_ancestors": "",
  "attachments_folder": "data/attachments",
  "auth_request_purge_schedule": "30 * * * * *",
  "authenticator_disable_time_drift": false,
  "data_folder": "data",
  "database_conn_init": "",
  "database_idle_timeout": 600,
  "database_max_conns": 10,
  "database_min_conns": 2,
  "database_timeout": 30,
  "database_url": "***************",
  "db_connection_retries": 15,
  "disable_2fa_remember": false,
  "disable_admin_token": false,
  "disable_icon_download": true,
  "dns_prefer_ipv6": false,
  "domain": "*****://********************",
  "domain_origin": "*****://********************",
  "domain_path": "",
  "domain_set": true,
  "duo_context_purge_schedule": "30 * * * * *",
  "duo_host": null,
  "duo_ikey": null,
  "duo_skey": null,
  "duo_use_iframe": false,
  "email_2fa_auto_fallback": false,
  "email_2fa_enforce_on_verified_invite": true,
  "email_attempts_limit": 3,
  "email_change_allowed": true,
  "email_expiration_time": 600,
  "email_token_size": 6,
  "emergency_access_allowed": true,
  "emergency_notification_reminder_schedule": "0 3 * * * *",
  "emergency_request_timeout_schedule": "0 7 * * * *",
  "enable_db_wal": true,
  "enable_websocket": true,
  "enforce_single_org_with_reset_pw_policy": false,
  "event_cleanup_schedule": "0 10 0 * * *",
  "events_days_retain": null,
  "experimental_client_feature_flags": "",
  "extended_logging": true,
  "helo_name": null,
  "hibp_api_key": null,
  "http_request_block_non_global_ips": true,
  "http_request_block_regex": null,
  "icon_blacklist_non_global_ips": true,
  "icon_blacklist_regex": null,
  "icon_cache_folder": "data/icon_cache",
  "icon_cache_negttl": 259200,
  "icon_cache_ttl": 2592000,
  "icon_download_timeout": 10,
  "icon_redirect_code": 302,
  "icon_service": "internal",
  "incomplete_2fa_schedule": "30 * * * * *",
  "incomplete_2fa_time_limit": 3,
  "increase_note_size_limit": false,
  "invitation_expiration_hours": 120,
  "invitation_org_name": "Vaultwarden",
  "invitations_allowed": true,
  "ip_header": "X-Real-IP",
  "job_poll_interval_ms": 30000,
  "log_file": null,
  "log_level": "trace",
  "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f",
  "login_ratelimit_max_burst": 10,
  "login_ratelimit_seconds": 60,
  "org_attachment_limit": null,
  "org_creation_users": "",
  "org_events_enabled": false,
  "org_groups_enabled": false,
  "password_hints_allowed": false,
  "password_iterations": 600000,
  "purge_incomplete_sso_auth": "0 20 0 * * *",
  "push_enabled": false,
  "push_identity_uri": "https://identity.bitwarden.com",
  "push_installation_id": "***",
  "push_installation_key": "***",
  "push_relay_uri": "https://push.bitwarden.com",
  "reload_templates": false,
  "require_device_email": true,
  "rsa_key_filename": "data/rsa_key",
  "send_purge_schedule": "0 5 * * * *",
  "sendmail_command": null,
  "sends_allowed": true,
  "sends_folder": "data/sends",
  "show_password_hint": false,
  "signups_allowed": false,
  "signups_domains_whitelist": "",
  "signups_verify": false,
  "signups_verify_resend_limit": 6,
  "signups_verify_resend_time": 3600,
  "smtp_accept_invalid_certs": false,
  "smtp_accept_invalid_hostnames": false,
  "smtp_auth_mechanism": null,
  "smtp_debug": false,
  "smtp_embed_images": true,
  "smtp_explicit_tls": null,
  "smtp_from": "******************",
  "smtp_from_name": "*******************",
  "smtp_host": "***************",
  "smtp_password": "***",
  "smtp_port": 587,
  "smtp_security": "starttls",
  "smtp_ssl": null,
  "smtp_timeout": 15,
  "smtp_username": "******************",
  "sso_allow_unknown_email_verification": false,
  "sso_audience_trusted": null,
  "sso_auth_only_not_session": false,
  "sso_authority": "",
  "sso_authorize_extra_params": "",
  "sso_callback_path": "*****://*************************************************",
  "sso_client_cache_expiration": 0,
  "sso_client_id": "",
  "sso_client_secret": "***",
  "sso_debug_tokens": false,
  "sso_enabled": false,
  "sso_master_password_policy": null,
  "sso_only": false,
  "sso_pkce": true,
  "sso_scopes": "email profile",
  "sso_signups_match_email": true,
  "templates_folder": "data/templates",
  "tmp_folder": "data/tmp",
  "trash_auto_delete_days": null,
  "trash_purge_schedule": "0 5 0 * * *",
  "use_sendmail": false,
  "use_syslog": false,
  "user_attachment_limit": 2048,
  "user_send_limit": 2048,
  "web_vault_enabled": true,
  "web_vault_folder": "web-vault/",
  "yubico_client_id": "37438",
  "yubico_secret_key": "***",
  "yubico_server": null
}

Vaultwarden Build Version

v1.36.0

Deployment method

Official Container Image

Custom deployment method

No response

Reverse Proxy

nginx

Host/Server Operating System

Linux

Operating System Version

Debian 13

Clients

Desktop

Client Version

SOGo Webmail mailcow 2026-05c - K-9 Mail 20.0 - Geary 44.1

Steps To Reproduce

  1. Ensure SIGNUPS_ALLOWED=false and INVITATIONS_ALLOWED=true in your configuration.
  2. Invite a new user via the Admin dashboard or Organization panel.
  3. Open the received invitation email using SOGo Webmail or K-9 Mail.
  4. Try to copy the invitation link (either by copying the plain-text URL or right-clicking the "Join Organization Now" HTML button and selecting "Copy Link").
  5. Paste the link into a browser or text editor.

Expected Result

The pasted link should be the complete, functional URL including the full JWT token, allowing the user to accept the invitation and register.

Actual Result

The copied link is heavily truncated and broken. In my case, the email clients truncate the URL visually with *** right where the quoted-printable soft line break occurs in the MIME source. When selecting "Copy Link", the clipboard contains this broken display value instead of the actual href target:

https://passwords.domain.de/#/accept-organization/?email=user%40domain.de&organization***=

Because the token is missing, the registration is immediately blocked by Vaultwarden.

Note: This behavior is highly client-dependent. Testing with the "Geary" email client on Linux showed that it copies the link perfectly fine, properly decoding the quoted-printable format. However, since several major clients (like SOGo and K-9) fail at this, it's a significant usability roadblock.

Logs


Screenshots or Videos

Image
E-Mail Source (Click to expand)

Just the body without the headers

--JL52eQ6MnrtszWBQrrFfWohFhUWsLvZJyCsuanZo
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

You have been invited to join the *Vaultwarden* organization.


Click here to join: https://passwords.domain.de/#/accept-organization/?ema=
il=3Duser%40domain.de&organizationName=3DDomain&organizationId=3D4984a04d=
-e7e0-484a-92a7-1316fa4b50df&organizationUserId=3Df5abd8de-9fe6-417c-af76-d=
71dbbfc849b&token=3DeyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJuYmYiOjE3ODMyNz=
MxNTMsImV4cCI6MTc4MzcwNTE1MywiaXNzIjoiaHR0cHM6Ly9wYXNzd29yZHMuZmFyYWZpbi5kZ=
XxpbnZpdGUiLCJzdWIiOiI1ZjYzZmUwNi05ZjUyLTQ0ZTMtOTdhZi1iZTM1ZDJkNWZhNmIiLCJl=
bWFpbCI6ImFyb25AbWFsY2hlci5pdCIsIm9yZ19pZCI6IjQ5ODRhMDRkLWU3ZTAtNDg0YS05MmE=
3LTEzMTZmYTRiNTBkZiIsIm1lbWJlcl9pZCI6ImY1YWJkOGRlLTlmZTYtNDE3Yy1hZjc2LWQ3MW=
RiYmZjODQ5YiIsImludml0ZWRfYnlfZW1haWwiOiJhcm9uLm1hbGNoZXJAZmFyYWZpbi5kZSJ9.=
cbd5SPj3p000HVCzthd_3qV9Nh4r4VhaV67Q8r6pWdmO1OlEYQdpioik6yJtTn6erjA8Y2iN2rF=
vZHjFrOTMOywZYbjYfOec9qE5bs_clQRcMC2-yRJQI9fafsAj5pl3EgnYLNDNpwWHRKuMIcz6dV=
JRV8sJIXXmz5OWFPBbhFFyFdu_OlPugDajfri_lWHf5Vq3xBknqT2OOTUUd6NpOkTBg_-Fy-PF-=
lNhofj5voV58XbpA6x7RcTJWRZDFjbRe8JNJT-vNNLTh5zOczLQJ1iifG7xBOnozWqdNuaP5GB7=
hodE5BxdLwrIpnk3XZRNki1usXBfVNcEd4ENmnge1A


If you do not wish to join this organization, you can safely ignore this em=
ail.

=3D=3D=3D
Github: https://github.com/dani-garcia/vaultwarden
--JL52eQ6MnrtszWBQrrFfWohFhUWsLvZJyCsuanZo
Content-Type: multipart/related;
 boundary="AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq"

--AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.=
w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns=3D"http://www.w3.org/1999/xhtml" xmlns=3D"http://www.w3.org/199=
9/xhtml" style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-ad=
just: none; box-sizing: border-box; color: #333; font-family: 'Helvetica Ne=
ue', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 25px; marg=
in: 0;">
   <head>
      <meta name=3D"viewport" content=3D"width=3Ddevice-width" />
      <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF=
-8" />
      <title>Vaultwarden</title>
   </head>
   <body style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-ad=
just: none; height: 100%; line-height: 25px; width: 100% !important;" bgcol=
or=3D"#f6f6f6">
      <style type=3D"text/css">
         body {
         margin: 0;
         font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
         box-sizing: border-box;
         font-size: 16px;
         color: #333;
         line-height: 25px;
         -webkit-font-smoothing: antialiased;
         -webkit-text-size-adjust: none;
         }
         body * {
         margin: 0;
         font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
         box-sizing: border-box;
         font-size: 16px;
         color: #333;
         line-height: 25px;
         -webkit-font-smoothing: antialiased;
         -webkit-text-size-adjust: none;
         }
         img {
         max-width: 100%;
         border: none;
         }
         body {
         -webkit-font-smoothing: antialiased;
         -webkit-text-size-adjust: none;
         width: 100% !important;
         height: 100%;
         line-height: 25px;
         }
         body {
         background-color: #f6f6f6;
         }
         @media only screen and (max-width: 600px) {
         body {
         padding: 0 !important;
         }
         .container {
         padding: 0 !important;
         width: 100% !important;
         }
         .container-table {
         padding: 0 !important;
         width: 100% !important;
         }
         .content {
         padding: 0 0 10px 0 !important;
         }
         .content-wrap {
         padding: 10px !important;
         }
         .invoice {
         width: 100% !important;
         }
         .main {
         border-right: none !important;
         border-left: none !important;
         border-radius: 0 !important;
         }
         .logo {
         padding-top: 10px !important;
         }
         .footer {
         margin-top: 10px !important;
         }
         .indented {
         padding-left: 10px;
         }
         }
      </style>
      <table class=3D"body-wrap" cellpadding=3D"0" cellspacing=3D"0" style=
=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; bo=
x-sizing: border-box; color: #333; font-family: 'Helvetica Neue', Helvetica=
, Arial, sans-serif; font-size: 16px; line-height: 25px; margin: 0; width: =
100%;" bgcolor=3D"#f6f6f6">
         <tr style=3D"-webkit-font-smoothing: antialiased; -webkit-text-siz=
e-adjust: none; box-sizing: border-box; color: #333; font-family: 'Helvetic=
a Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 25px; =
margin: 0;">
            <td valign=3D"middle" class=3D"aligncenter middle logo" style=
=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; bo=
x-sizing: border-box; color: #333; font-family: 'Helvetica Neue', Helvetica=
, Arial, sans-serif; font-size: 16px; line-height: 25px; margin: 0; padding=
: 20px 0 10px;" align=3D"center">
                <img src=3D"cid:logo-gray.png" alt=3D"Vaultwarden" width=3D=
"190" height=3D"39" style=3D"-webkit-font-smoothing: antialiased; -webkit-t=
ext-size-adjust: none; border: none; box-sizing: border-box; color: #333; f=
ont-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px=
; line-height: 25px; margin: 0; max-width: 100%;" />
            </td>
         </tr>
         <tr style=3D"-webkit-font-smoothing: antialiased; -webkit-text-siz=
e-adjust: none; box-sizing: border-box; color: #333; font-family: 'Helvetic=
a Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 25px; =
margin: 0;">
            <td class=3D"container" align=3D"center" style=3D"-webkit-font-=
smoothing: antialiased; -webkit-text-size-adjust: none; box-sizing: border-=
box; clear: both !important; color: #333; display: block !important; font-f=
amily: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; lin=
e-height: 25px; margin: 0 auto; max-width: 600px !important; width: 600px;"=
 valign=3D"top">
               <table cellpadding=3D"0" cellspacing=3D"0" class=3D"containe=
r-table" style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-ad=
just: none; box-sizing: border-box; clear: both !important; color: #333; di=
splay: block !important; font-family: 'Helvetica Neue', Helvetica, Arial, s=
ans-serif; font-size: 16px; line-height: 25px; margin: 0 auto; max-width: 6=
00px !important; width: max-content;">
                  <tr style=3D"-webkit-font-smoothing: antialiased; -webkit=
-text-size-adjust: none; box-sizing: border-box; color: #333; font-family: =
'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-heigh=
t: 25px; margin: 0;">
                     <td class=3D"content" align=3D"center" style=3D"-webki=
t-font-smoothing: antialiased; -webkit-text-size-adjust: none; box-sizing: =
border-box; color: #333; display: block; font-family: 'Helvetica Neue', Hel=
vetica, Arial, sans-serif; font-size: 0; line-height: 0; margin: 0 auto; ma=
x-width: 600px; padding-bottom: 20px;" valign=3D"top">
                        <table class=3D"main" width=3D"100%" cellpadding=3D=
"0" cellspacing=3D"0" style=3D"font-family: 'Helvetica Neue', Helvetica, Ar=
ial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line=
-height: 25px; -webkit-font-smoothing: antialiased; margin: 0; -webkit-text=
-size-adjust: none; border: 1px solid #e9e9e9; border-radius: 3px;" bgcolor=
=3D"white">
                           <tr style=3D"margin: 0; font-family: 'Helvetica =
Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16p=
x; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -we=
bkit-text-size-adjust: none;">
                              <td class=3D"content-wrap" style=3D"font-fami=
ly: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box;=
 font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-s=
moothing: antialiased; padding: 20px; -webkit-text-size-adjust: none;" vali=
gn=3D"top">
<table width=3D"100%" cellpadding=3D"0" cellspacing=3D"0" style=3D"margin: =
0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing:=
 border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-=
smoothing: antialiased; -webkit-text-size-adjust: none;">
   <tr style=3D"margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial,=
 sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-hei=
ght: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n=
one;">
      <td class=3D"content-block" style=3D"font-family: 'Helvetica Neue', H=
elvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color=
: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; =
padding: 0 0 10px; -webkit-text-size-adjust: none; text-align: center;" val=
ign=3D"top" align=3D"center">
         You have been invited to join the <b style=3D"margin: 0; font-fami=
ly: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box;=
 font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: a=
ntialiased; -webkit-text-size-adjust: none;">Vaultwarden</b> organization.
      </td>
   </tr>
   <tr style=3D"margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial,=
 sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-hei=
ght: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n=
one;">
      <td class=3D"content-block" style=3D"font-family: 'Helvetica Neue', H=
elvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color=
: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; =
padding: 0 0 10px; -webkit-text-size-adjust: none; text-align: center;" val=
ign=3D"top" align=3D"center">
         <a data-testid=3D"invite" href=3D"https://passwords.domain.de/#/a=
ccept-organization/?email=3Duser%40domain.de&organizationName=3DDomain&or=
ganizationId=3D4984a04d-e7e0-484a-92a7-1316fa4b50df&organizationUserId=3Df5=
abd8de-9fe6-417c-af76-d71dbbfc849b&token=3DeyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1=
NiJ9.eyJuYmYiOjE3ODMyNzMxNTMsImV4cCI6MTc4MzcwNTE1MywiaXNzIjoiaHR0cHM6Ly9wYX=
Nzd29yZHMuZmFyYWZpbi5kZXxpbnZpdGUiLCJzdWIiOiI1ZjYzZmUwNi05ZjUyLTQ0ZTMtOTdhZ=
i1iZTM1ZDJkNWZhNmIiLCJlbWFpbCI6ImFyb25AbWFsY2hlci5pdCIsIm9yZ19pZCI6IjQ5ODRh=
MDRkLWU3ZTAtNDg0YS05MmE3LTEzMTZmYTRiNTBkZiIsIm1lbWJlcl9pZCI6ImY1YWJkOGRlLTl=
mZTYtNDE3Yy1hZjc2LWQ3MWRiYmZjODQ5YiIsImludml0ZWRfYnlfZW1haWwiOiJhcm9uLm1hbG=
NoZXJAZmFyYWZpbi5kZSJ9.cbd5SPj3p000HVCzthd_3qV9Nh4r4VhaV67Q8r6pWdmO1OlEYQdp=
ioik6yJtTn6erjA8Y2iN2rFvZHjFrOTMOywZYbjYfOec9qE5bs_clQRcMC2-yRJQI9fafsAj5pl=
3EgnYLNDNpwWHRKuMIcz6dVJRV8sJIXXmz5OWFPBbhFFyFdu_OlPugDajfri_lWHf5Vq3xBknqT=
2OOTUUd6NpOkTBg_-Fy-PF-lNhofj5voV58XbpA6x7RcTJWRZDFjbRe8JNJT-vNNLTh5zOczLQJ=
1iifG7xBOnozWqdNuaP5GB7hodE5BxdLwrIpnk3XZRNki1usXBfVNcEd4ENmnge1A"
            clicktracking=3Doff target=3D"_blank" style=3D"color: #ffffff; =
text-decoration: none; text-align: center; cursor: pointer; display: inline=
-block; border-radius: 5px; background-color: #3c8dbc; border-color: #3c8db=
c; border-style: solid; border-width: 10px 20px; margin: 0; font-family: 'H=
elvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-=
size: 16px; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit=
-text-size-adjust: none;">
         Join Organization Now
         </a>
      </td>
   </tr>
   <tr style=3D"margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial,=
 sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-hei=
ght: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n=
one;">
      <td class=3D"content-block last" style=3D"font-family: 'Helvetica Neu=
e', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; =
color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialia=
sed; padding: 0; -webkit-text-size-adjust: none; text-align: center;" valig=
n=3D"top" align=3D"center">
         If you do not wish to join this organization, you can safely ignor=
e this email.
      </td>
   </tr>
</table>
                           </td>
                        </tr>
                        </table>
                     </td>
                  </tr>
               </table>

               <table class=3D"footer" cellpadding=3D"0" cellspacing=3D"0" =
width=3D"100%" style=3D"-webkit-font-smoothing: antialiased; -webkit-text-s=
ize-adjust: none; box-sizing: border-box; clear: both; color: #999; font-fa=
mily: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line=
-height: 20px; margin: 0; width: 100%;">
                  <tr style=3D"-webkit-font-smoothing: antialiased; -webkit=
-text-size-adjust: none; box-sizing: border-box; color: #333; font-family: =
'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-heigh=
t: 25px; margin: 0;">
                     <td class=3D"aligncenter social-icons" align=3D"center=
" style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n=
one; box-sizing: border-box; color: #999; font-family: 'Helvetica Neue', He=
lvetica, Arial, sans-serif; font-size: 12px; line-height: 20px; margin: 0; =
padding: 5px 0 20px 0;" valign=3D"top">
                        <table cellpadding=3D"0" cellspacing=3D"0" style=3D=
"-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; box-s=
izing: border-box; color: #333; font-family: 'Helvetica Neue', Helvetica, A=
rial, sans-serif; font-size: 16px; line-height: 25px; margin: 0 auto;">
                           <tr style=3D"-webkit-font-smoothing: antialiased=
; -webkit-text-size-adjust: none; box-sizing: border-box; color: #333; font=
-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; l=
ine-height: 25px; margin: 0;">
                                 <td style=3D"-webkit-font-smoothing: antia=
liased; -webkit-text-size-adjust: none; box-sizing: border-box; color: #999=
; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1=
2px; line-height: 20px; margin: 0; padding: 0 10px;" valign=3D"top"><a href=
=3D"https://github.com/dani-garcia/vaultwarden" target=3D"_blank" style=3D"=
-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; box-si=
zing: border-box; color: #999; font-family: 'Helvetica Neue', Helvetica, Ar=
ial, sans-serif; font-size: 12px; line-height: 20px; margin: 0; text-decora=
tion: underline;"><img src=3D"cid:mail-github.png" alt=3D"GitHub" width=3D"=
30" height=3D"30" style=3D"-webkit-font-smoothing: antialiased; -webkit-tex=
t-size-adjust: none; border: none; box-sizing: border-box; color: #333; fon=
t-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; =
line-height: 25px; margin: 0; max-width: 100%;" /></a></td>
                           </tr>
                        </table>
                     </td>
                  </tr>
               </table>

            </td>
         </tr>
      </table>
   </body>
</html>
--AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq
Content-ID: <logo-gray.png>
Content-Disposition: inline
Content-Type: image/png
Content-Transfer-Encoding: base64

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
AAAAAElFTkSuQmCC
--AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq
Content-ID: <mail-github.png>
Content-Disposition: inline
Content-Type: image/png
Content-Transfer-Encoding: base64

iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABm1BMVEUAAACZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZll/aOX
AAAAiHRSTlMAAQIDBAUICQsODxAREhMUFRYXGRocHR8gISMkJSYnKistLi8wMTI0NTY4Ojs8PT4/
QEFER0pLTU5PUFFUVVldXl9hYmNkZmlrbG1zdHd5fn+Ag4aIiYuMjo+RlJWXmJudnqKjpaqrra+w
tLW5vsDFx8zOz9HT1dfZ2tze4uTm6e3v8fX3+fv9ycTzRAAAArpJREFUeNqt1WO/7TgYhvEr7T62
bdu2bdu2tY32/tjzW0jadKGZmfN/HecBzZmxK04+ePO1r+/rmwcnV4w1BIsW30vlSe8tiQgx5kqi
JpIrY8qn3lJLt9pPj86qrbMRLU3/qRI/p9HCUQU4QjPmuoJcMzSIXyjQ85gC81LBnht8NxROV/Ec
V1H4q81U3Zo5+7+rhQ+7Zq5W3TSc6LdqvgNMu6cmbk8G+KaaHxHWedUdpWrcayl5d+nQtk2bth26
9C6R3kyk6rDqzlI3TtZK6uaNI2fcfOpWyLJxflfWNEpMk3WruLFmUWKmCltfl7OcEsvkXAGIEzkX
KHFezlAELFXmISXuK7MEeCCnaxglhnXJuQcm9dYqs1hOahgn5xMBPskZyyo5WwiwRc4KTssZRYDR
ck7xSA5B5DzgraxOgnTJesN3WR8I8lHWV/pl/SbIH1l9DMoaIkgia5BuOYYARk4XX+SMo5wfVI/l
rCPAWjmPOCvnFgGuyTnDZjnpMEpFQ3I2MkWZPZTaqsxkolTOwHBKdPTKSSJ4qswTQ1vmkTKPgY3K
uWNow9xTzgZgmPLej6alsR+Uk3YA3FbFw8u/VZGeHUFTI8+nyrtJxWRJSoYxbGqPqp6vH2vwmHGb
XqpgIlXPJenjKIbxS9bn4bk9v6rRM2omqCKZwcRJsnaTs1uNxlN3URX9wzm+L2sHzcKqWW+JO1Vx
j5hzNuY9j1XQGePMto1v+fSFbxJ9OzkazzEVzCbnoCquAUsXMY+DI/DslO9Asw42l4qZRPi2yXMf
n3klSckGMi0nvzIUxK9V8ePIqpkTJs2fgGe7cl7HNIgeK7Oj9Z0fRzRzQs5OaBElJ2lhQY8XYJk9
qutZSEvDrjQvSHtVc3UY7Ux8poq9ePap4vkkyky8mkgr8ayS0msTCREvW0LBkuUd/GX/AMEwIhi5
wxyfAAAAAElFTkSuQmCC
--AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq--
--JL52eQ6MnrtszWBQrrFfWohFhUWsLvZJyCsuanZo--

Additional Context

I have verified the MIME source of the email. Vaultwarden generates a perfectly valid email with Content-Transfer-Encoding: quoted-printable. However, because the JWT token makes the invitation URL extremely long, it forces soft line breaks (=) in the source code.
Plaintext

...organizationName=3DDomain&organizationId=3D4984a04d=
-e7e0-484a-92a7-1316fa4b50df...

While this is technically a client-side clipboard/parsing bug in SOGo and K-9 Mail (as proven by the fact that the "Geary" client handles it correctly), Vaultwarden's extremely long JWT-based URLs make the quoted-printable encoding highly fragile across the email ecosystem. Users often end up copying the truncated display value instead of the href target.

Suggestion for Vaultwarden:

Instead of altering the token length or architecture, a robust and simple fix would be to change the Content-Transfer-Encoding for these emails from quoted-printable to base64.
Using base64 would completely eliminate the need for soft line breaks (=) inside the long URLs within the MIME source, avoiding these widespread copy-paste rendering bugs in strict or flawed email clients.

Originally created by @aronmal on GitHub (Jul 5, 2026). Original GitHub issue: https://github.com/dani-garcia/vaultwarden/issues/7401 ### Prerequisites - [x] I have searched the existing **Closed _AND_ Open** [Issues](https://github.com/dani-garcia/vaultwarden/issues?q=is%3Aissue%20) **_AND_** [Discussions](https://github.com/dani-garcia/vaultwarden/discussions?discussions_q=) - [x] I have searched and read the [documentation](https://github.com/dani-garcia/vaultwarden/wiki/) ### Vaultwarden Support String ### Your environment (Generated via diagnostics page) * Vaultwarden version: v1.36.0 * Web-vault version: v2026.4.1 * OS/Arch: linux/x86_64 * Running within a container: true (Base: Debian) * Database type: SQLite * Database version: 3.51.3 * Uses config.json: true * Uses a reverse proxy: true * IP Header check: true (X-Real-IP) * Internet access: true * Internet access via a proxy: false * DNS Check: true * TZ environment: Europe/Berlin * Browser/Server Time Check: true * Server/NTP Time Check: true * Domain Configuration Check: true * HTTPS Check: true * Websocket Check: true * HTTP Response Checks: true ### Config & Details (Generated via diagnostics page) <details><summary>Show Config & Details</summary> **Environment settings which are overridden:** DOMAIN, SIGNUPS_ALLOWED, INVITATIONS_ALLOWED, ADMIN_TOKEN, YUBICO_CLIENT_ID, YUBICO_SECRET_KEY, SMTP_HOST, SMTP_SECURITY, SMTP_PORT, SMTP_FROM, SMTP_USERNAME, SMTP_PASSWORD **Config:** ```json { "_duo_akey": null, "_enable_duo": false, "_enable_email_2fa": true, "_enable_smtp": true, "_enable_yubico": true, "_icon_service_csp": "", "_icon_service_url": "", "_ip_header_enabled": true, "_max_note_size": 10000, "_smtp_img_src": "***:", "admin_ratelimit_max_burst": 3, "admin_ratelimit_seconds": 300, "admin_session_lifetime": 20, "admin_token": "***", "allowed_connect_src": "", "allowed_iframe_ancestors": "", "attachments_folder": "data/attachments", "auth_request_purge_schedule": "30 * * * * *", "authenticator_disable_time_drift": false, "data_folder": "data", "database_conn_init": "", "database_idle_timeout": 600, "database_max_conns": 10, "database_min_conns": 2, "database_timeout": 30, "database_url": "***************", "db_connection_retries": 15, "disable_2fa_remember": false, "disable_admin_token": false, "disable_icon_download": true, "dns_prefer_ipv6": false, "domain": "*****://********************", "domain_origin": "*****://********************", "domain_path": "", "domain_set": true, "duo_context_purge_schedule": "30 * * * * *", "duo_host": null, "duo_ikey": null, "duo_skey": null, "duo_use_iframe": false, "email_2fa_auto_fallback": false, "email_2fa_enforce_on_verified_invite": true, "email_attempts_limit": 3, "email_change_allowed": true, "email_expiration_time": 600, "email_token_size": 6, "emergency_access_allowed": true, "emergency_notification_reminder_schedule": "0 3 * * * *", "emergency_request_timeout_schedule": "0 7 * * * *", "enable_db_wal": true, "enable_websocket": true, "enforce_single_org_with_reset_pw_policy": false, "event_cleanup_schedule": "0 10 0 * * *", "events_days_retain": null, "experimental_client_feature_flags": "", "extended_logging": true, "helo_name": null, "hibp_api_key": null, "http_request_block_non_global_ips": true, "http_request_block_regex": null, "icon_blacklist_non_global_ips": true, "icon_blacklist_regex": null, "icon_cache_folder": "data/icon_cache", "icon_cache_negttl": 259200, "icon_cache_ttl": 2592000, "icon_download_timeout": 10, "icon_redirect_code": 302, "icon_service": "internal", "incomplete_2fa_schedule": "30 * * * * *", "incomplete_2fa_time_limit": 3, "increase_note_size_limit": false, "invitation_expiration_hours": 120, "invitation_org_name": "Vaultwarden", "invitations_allowed": true, "ip_header": "X-Real-IP", "job_poll_interval_ms": 30000, "log_file": null, "log_level": "trace", "log_timestamp_format": "%Y-%m-%d %H:%M:%S.%3f", "login_ratelimit_max_burst": 10, "login_ratelimit_seconds": 60, "org_attachment_limit": null, "org_creation_users": "", "org_events_enabled": false, "org_groups_enabled": false, "password_hints_allowed": false, "password_iterations": 600000, "purge_incomplete_sso_auth": "0 20 0 * * *", "push_enabled": false, "push_identity_uri": "https://identity.bitwarden.com", "push_installation_id": "***", "push_installation_key": "***", "push_relay_uri": "https://push.bitwarden.com", "reload_templates": false, "require_device_email": true, "rsa_key_filename": "data/rsa_key", "send_purge_schedule": "0 5 * * * *", "sendmail_command": null, "sends_allowed": true, "sends_folder": "data/sends", "show_password_hint": false, "signups_allowed": false, "signups_domains_whitelist": "", "signups_verify": false, "signups_verify_resend_limit": 6, "signups_verify_resend_time": 3600, "smtp_accept_invalid_certs": false, "smtp_accept_invalid_hostnames": false, "smtp_auth_mechanism": null, "smtp_debug": false, "smtp_embed_images": true, "smtp_explicit_tls": null, "smtp_from": "******************", "smtp_from_name": "*******************", "smtp_host": "***************", "smtp_password": "***", "smtp_port": 587, "smtp_security": "starttls", "smtp_ssl": null, "smtp_timeout": 15, "smtp_username": "******************", "sso_allow_unknown_email_verification": false, "sso_audience_trusted": null, "sso_auth_only_not_session": false, "sso_authority": "", "sso_authorize_extra_params": "", "sso_callback_path": "*****://*************************************************", "sso_client_cache_expiration": 0, "sso_client_id": "", "sso_client_secret": "***", "sso_debug_tokens": false, "sso_enabled": false, "sso_master_password_policy": null, "sso_only": false, "sso_pkce": true, "sso_scopes": "email profile", "sso_signups_match_email": true, "templates_folder": "data/templates", "tmp_folder": "data/tmp", "trash_auto_delete_days": null, "trash_purge_schedule": "0 5 0 * * *", "use_sendmail": false, "use_syslog": false, "user_attachment_limit": 2048, "user_send_limit": 2048, "web_vault_enabled": true, "web_vault_folder": "web-vault/", "yubico_client_id": "37438", "yubico_secret_key": "***", "yubico_server": null } ``` </details> ### Vaultwarden Build Version v1.36.0 ### Deployment method Official Container Image ### Custom deployment method _No response_ ### Reverse Proxy nginx ### Host/Server Operating System Linux ### Operating System Version Debian 13 ### Clients Desktop ### Client Version SOGo Webmail mailcow 2026-05c - K-9 Mail 20.0 - Geary 44.1 ### Steps To Reproduce 1. Ensure `SIGNUPS_ALLOWED=false` and `INVITATIONS_ALLOWED=true` in your configuration. 2. Invite a new user via the Admin dashboard or Organization panel. 3. Open the received invitation email using SOGo Webmail or K-9 Mail. 4. Try to copy the invitation link (either by copying the plain-text URL or right-clicking the "Join Organization Now" HTML button and selecting "Copy Link"). 5. Paste the link into a browser or text editor. ### Expected Result The pasted link should be the complete, functional URL including the full JWT token, allowing the user to accept the invitation and register. ### Actual Result The copied link is heavily truncated and broken. In my case, the email clients truncate the URL visually with `***` right where the `quoted-printable` soft line break occurs in the MIME source. When selecting "Copy Link", the clipboard contains this broken display value instead of the actual `href` target: `https://passwords.domain.de/#/accept-organization/?email=user%40domain.de&organization***=` Because the token is missing, the registration is immediately blocked by Vaultwarden. **Note:** This behavior is highly client-dependent. Testing with the "Geary" email client on Linux showed that it copies the link perfectly fine, properly decoding the quoted-printable format. However, since several major clients (like SOGo and K-9) fail at this, it's a significant usability roadblock. ### Logs ```text ``` ### Screenshots or Videos <img width="2286" height="1496" alt="Image" src="https://github.com/user-attachments/assets/07d867b8-5289-4bcd-b338-45ebba99ef93" /> <details> <summary>E-Mail Source (Click to expand)</summary> Just the body without the headers ```email --JL52eQ6MnrtszWBQrrFfWohFhUWsLvZJyCsuanZo Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable You have been invited to join the *Vaultwarden* organization. Click here to join: https://passwords.domain.de/#/accept-organization/?ema= il=3Duser%40domain.de&organizationName=3DDomain&organizationId=3D4984a04d= -e7e0-484a-92a7-1316fa4b50df&organizationUserId=3Df5abd8de-9fe6-417c-af76-d= 71dbbfc849b&token=3DeyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJuYmYiOjE3ODMyNz= MxNTMsImV4cCI6MTc4MzcwNTE1MywiaXNzIjoiaHR0cHM6Ly9wYXNzd29yZHMuZmFyYWZpbi5kZ= XxpbnZpdGUiLCJzdWIiOiI1ZjYzZmUwNi05ZjUyLTQ0ZTMtOTdhZi1iZTM1ZDJkNWZhNmIiLCJl= bWFpbCI6ImFyb25AbWFsY2hlci5pdCIsIm9yZ19pZCI6IjQ5ODRhMDRkLWU3ZTAtNDg0YS05MmE= 3LTEzMTZmYTRiNTBkZiIsIm1lbWJlcl9pZCI6ImY1YWJkOGRlLTlmZTYtNDE3Yy1hZjc2LWQ3MW= RiYmZjODQ5YiIsImludml0ZWRfYnlfZW1haWwiOiJhcm9uLm1hbGNoZXJAZmFyYWZpbi5kZSJ9.= cbd5SPj3p000HVCzthd_3qV9Nh4r4VhaV67Q8r6pWdmO1OlEYQdpioik6yJtTn6erjA8Y2iN2rF= vZHjFrOTMOywZYbjYfOec9qE5bs_clQRcMC2-yRJQI9fafsAj5pl3EgnYLNDNpwWHRKuMIcz6dV= JRV8sJIXXmz5OWFPBbhFFyFdu_OlPugDajfri_lWHf5Vq3xBknqT2OOTUUd6NpOkTBg_-Fy-PF-= lNhofj5voV58XbpA6x7RcTJWRZDFjbRe8JNJT-vNNLTh5zOczLQJ1iifG7xBOnozWqdNuaP5GB7= hodE5BxdLwrIpnk3XZRNki1usXBfVNcEd4ENmnge1A If you do not wish to join this organization, you can safely ignore this em= ail. =3D=3D=3D Github: https://github.com/dani-garcia/vaultwarden --JL52eQ6MnrtszWBQrrFfWohFhUWsLvZJyCsuanZo Content-Type: multipart/related; boundary="AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq" --AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.= w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns=3D"http://www.w3.org/1999/xhtml" xmlns=3D"http://www.w3.org/199= 9/xhtml" style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-ad= just: none; box-sizing: border-box; color: #333; font-family: 'Helvetica Ne= ue', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 25px; marg= in: 0;"> <head> <meta name=3D"viewport" content=3D"width=3Ddevice-width" /> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3DUTF= -8" /> <title>Vaultwarden</title> </head> <body style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-ad= just: none; height: 100%; line-height: 25px; width: 100% !important;" bgcol= or=3D"#f6f6f6"> <style type=3D"text/css"> body { margin: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; } body * { margin: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; } img { max-width: 100%; border: none; } body { -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; width: 100% !important; height: 100%; line-height: 25px; } body { background-color: #f6f6f6; } @media only screen and (max-width: 600px) { body { padding: 0 !important; } .container { padding: 0 !important; width: 100% !important; } .container-table { padding: 0 !important; width: 100% !important; } .content { padding: 0 0 10px 0 !important; } .content-wrap { padding: 10px !important; } .invoice { width: 100% !important; } .main { border-right: none !important; border-left: none !important; border-radius: 0 !important; } .logo { padding-top: 10px !important; } .footer { margin-top: 10px !important; } .indented { padding-left: 10px; } } </style> <table class=3D"body-wrap" cellpadding=3D"0" cellspacing=3D"0" style= =3D"-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; bo= x-sizing: border-box; color: #333; font-family: 'Helvetica Neue', Helvetica= , Arial, sans-serif; font-size: 16px; line-height: 25px; margin: 0; width: = 100%;" bgcolor=3D"#f6f6f6"> <tr style=3D"-webkit-font-smoothing: antialiased; -webkit-text-siz= e-adjust: none; box-sizing: border-box; color: #333; font-family: 'Helvetic= a Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 25px; = margin: 0;"> <td valign=3D"middle" class=3D"aligncenter middle logo" style= =3D"-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; bo= x-sizing: border-box; color: #333; font-family: 'Helvetica Neue', Helvetica= , Arial, sans-serif; font-size: 16px; line-height: 25px; margin: 0; padding= : 20px 0 10px;" align=3D"center"> <img src=3D"cid:logo-gray.png" alt=3D"Vaultwarden" width=3D= "190" height=3D"39" style=3D"-webkit-font-smoothing: antialiased; -webkit-t= ext-size-adjust: none; border: none; box-sizing: border-box; color: #333; f= ont-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px= ; line-height: 25px; margin: 0; max-width: 100%;" /> </td> </tr> <tr style=3D"-webkit-font-smoothing: antialiased; -webkit-text-siz= e-adjust: none; box-sizing: border-box; color: #333; font-family: 'Helvetic= a Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-height: 25px; = margin: 0;"> <td class=3D"container" align=3D"center" style=3D"-webkit-font-= smoothing: antialiased; -webkit-text-size-adjust: none; box-sizing: border-= box; clear: both !important; color: #333; display: block !important; font-f= amily: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; lin= e-height: 25px; margin: 0 auto; max-width: 600px !important; width: 600px;"= valign=3D"top"> <table cellpadding=3D"0" cellspacing=3D"0" class=3D"containe= r-table" style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-ad= just: none; box-sizing: border-box; clear: both !important; color: #333; di= splay: block !important; font-family: 'Helvetica Neue', Helvetica, Arial, s= ans-serif; font-size: 16px; line-height: 25px; margin: 0 auto; max-width: 6= 00px !important; width: max-content;"> <tr style=3D"-webkit-font-smoothing: antialiased; -webkit= -text-size-adjust: none; box-sizing: border-box; color: #333; font-family: = 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-heigh= t: 25px; margin: 0;"> <td class=3D"content" align=3D"center" style=3D"-webki= t-font-smoothing: antialiased; -webkit-text-size-adjust: none; box-sizing: = border-box; color: #333; display: block; font-family: 'Helvetica Neue', Hel= vetica, Arial, sans-serif; font-size: 0; line-height: 0; margin: 0 auto; ma= x-width: 600px; padding-bottom: 20px;" valign=3D"top"> <table class=3D"main" width=3D"100%" cellpadding=3D= "0" cellspacing=3D"0" style=3D"font-family: 'Helvetica Neue', Helvetica, Ar= ial, sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line= -height: 25px; -webkit-font-smoothing: antialiased; margin: 0; -webkit-text= -size-adjust: none; border: 1px solid #e9e9e9; border-radius: 3px;" bgcolor= =3D"white"> <tr style=3D"margin: 0; font-family: 'Helvetica = Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16p= x; color: #333; line-height: 25px; -webkit-font-smoothing: antialiased; -we= bkit-text-size-adjust: none;"> <td class=3D"content-wrap" style=3D"font-fami= ly: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box;= font-size: 16px; color: #333; line-height: 25px; margin: 0; -webkit-font-s= moothing: antialiased; padding: 20px; -webkit-text-size-adjust: none;" vali= gn=3D"top"> <table width=3D"100%" cellpadding=3D"0" cellspacing=3D"0" style=3D"margin: = 0; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing:= border-box; font-size: 16px; color: #333; line-height: 25px; -webkit-font-= smoothing: antialiased; -webkit-text-size-adjust: none;"> <tr style=3D"margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial,= sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-hei= ght: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n= one;"> <td class=3D"content-block" style=3D"font-family: 'Helvetica Neue', H= elvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color= : #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; = padding: 0 0 10px; -webkit-text-size-adjust: none; text-align: center;" val= ign=3D"top" align=3D"center"> You have been invited to join the <b style=3D"margin: 0; font-fami= ly: 'Helvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box;= font-size: 16px; color: #333; line-height: 25px; -webkit-font-smoothing: a= ntialiased; -webkit-text-size-adjust: none;">Vaultwarden</b> organization. </td> </tr> <tr style=3D"margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial,= sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-hei= ght: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n= one;"> <td class=3D"content-block" style=3D"font-family: 'Helvetica Neue', H= elvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; color= : #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialiased; = padding: 0 0 10px; -webkit-text-size-adjust: none; text-align: center;" val= ign=3D"top" align=3D"center"> <a data-testid=3D"invite" href=3D"https://passwords.domain.de/#/a= ccept-organization/?email=3Duser%40domain.de&organizationName=3DDomain&or= ganizationId=3D4984a04d-e7e0-484a-92a7-1316fa4b50df&organizationUserId=3Df5= abd8de-9fe6-417c-af76-d71dbbfc849b&token=3DeyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1= NiJ9.eyJuYmYiOjE3ODMyNzMxNTMsImV4cCI6MTc4MzcwNTE1MywiaXNzIjoiaHR0cHM6Ly9wYX= Nzd29yZHMuZmFyYWZpbi5kZXxpbnZpdGUiLCJzdWIiOiI1ZjYzZmUwNi05ZjUyLTQ0ZTMtOTdhZ= i1iZTM1ZDJkNWZhNmIiLCJlbWFpbCI6ImFyb25AbWFsY2hlci5pdCIsIm9yZ19pZCI6IjQ5ODRh= MDRkLWU3ZTAtNDg0YS05MmE3LTEzMTZmYTRiNTBkZiIsIm1lbWJlcl9pZCI6ImY1YWJkOGRlLTl= mZTYtNDE3Yy1hZjc2LWQ3MWRiYmZjODQ5YiIsImludml0ZWRfYnlfZW1haWwiOiJhcm9uLm1hbG= NoZXJAZmFyYWZpbi5kZSJ9.cbd5SPj3p000HVCzthd_3qV9Nh4r4VhaV67Q8r6pWdmO1OlEYQdp= ioik6yJtTn6erjA8Y2iN2rFvZHjFrOTMOywZYbjYfOec9qE5bs_clQRcMC2-yRJQI9fafsAj5pl= 3EgnYLNDNpwWHRKuMIcz6dVJRV8sJIXXmz5OWFPBbhFFyFdu_OlPugDajfri_lWHf5Vq3xBknqT= 2OOTUUd6NpOkTBg_-Fy-PF-lNhofj5voV58XbpA6x7RcTJWRZDFjbRe8JNJT-vNNLTh5zOczLQJ= 1iifG7xBOnozWqdNuaP5GB7hodE5BxdLwrIpnk3XZRNki1usXBfVNcEd4ENmnge1A" clicktracking=3Doff target=3D"_blank" style=3D"color: #ffffff; = text-decoration: none; text-align: center; cursor: pointer; display: inline= -block; border-radius: 5px; background-color: #3c8dbc; border-color: #3c8db= c; border-style: solid; border-width: 10px 20px; margin: 0; font-family: 'H= elvetica Neue', Helvetica, Arial, sans-serif; box-sizing: border-box; font-= size: 16px; line-height: 25px; -webkit-font-smoothing: antialiased; -webkit= -text-size-adjust: none;"> Join Organization Now </a> </td> </tr> <tr style=3D"margin: 0; font-family: 'Helvetica Neue', Helvetica, Arial,= sans-serif; box-sizing: border-box; font-size: 16px; color: #333; line-hei= ght: 25px; -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n= one;"> <td class=3D"content-block last" style=3D"font-family: 'Helvetica Neu= e', Helvetica, Arial, sans-serif; box-sizing: border-box; font-size: 16px; = color: #333; line-height: 25px; margin: 0; -webkit-font-smoothing: antialia= sed; padding: 0; -webkit-text-size-adjust: none; text-align: center;" valig= n=3D"top" align=3D"center"> If you do not wish to join this organization, you can safely ignor= e this email. </td> </tr> </table> </td> </tr> </table> </td> </tr> </table> <table class=3D"footer" cellpadding=3D"0" cellspacing=3D"0" = width=3D"100%" style=3D"-webkit-font-smoothing: antialiased; -webkit-text-s= ize-adjust: none; box-sizing: border-box; clear: both; color: #999; font-fa= mily: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 12px; line= -height: 20px; margin: 0; width: 100%;"> <tr style=3D"-webkit-font-smoothing: antialiased; -webkit= -text-size-adjust: none; box-sizing: border-box; color: #333; font-family: = 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; line-heigh= t: 25px; margin: 0;"> <td class=3D"aligncenter social-icons" align=3D"center= " style=3D"-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: n= one; box-sizing: border-box; color: #999; font-family: 'Helvetica Neue', He= lvetica, Arial, sans-serif; font-size: 12px; line-height: 20px; margin: 0; = padding: 5px 0 20px 0;" valign=3D"top"> <table cellpadding=3D"0" cellspacing=3D"0" style=3D= "-webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; box-s= izing: border-box; color: #333; font-family: 'Helvetica Neue', Helvetica, A= rial, sans-serif; font-size: 16px; line-height: 25px; margin: 0 auto;"> <tr style=3D"-webkit-font-smoothing: antialiased= ; -webkit-text-size-adjust: none; box-sizing: border-box; color: #333; font= -family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; l= ine-height: 25px; margin: 0;"> <td style=3D"-webkit-font-smoothing: antia= liased; -webkit-text-size-adjust: none; box-sizing: border-box; color: #999= ; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 1= 2px; line-height: 20px; margin: 0; padding: 0 10px;" valign=3D"top"><a href= =3D"https://github.com/dani-garcia/vaultwarden" target=3D"_blank" style=3D"= -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: none; box-si= zing: border-box; color: #999; font-family: 'Helvetica Neue', Helvetica, Ar= ial, sans-serif; font-size: 12px; line-height: 20px; margin: 0; text-decora= tion: underline;"><img src=3D"cid:mail-github.png" alt=3D"GitHub" width=3D"= 30" height=3D"30" style=3D"-webkit-font-smoothing: antialiased; -webkit-tex= t-size-adjust: none; border: none; box-sizing: border-box; color: #333; fon= t-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 16px; = line-height: 25px; margin: 0; max-width: 100%;" /></a></td> </tr> </table> </td> </tr> </table> </td> </tr> </table> </body> </html> --AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq Content-ID: <logo-gray.png> Content-Disposition: inline Content-Type: image/png Content-Transfer-Encoding: base64 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 AAAAAElFTkSuQmCC --AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq Content-ID: <mail-github.png> Content-Disposition: inline Content-Type: image/png Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAMAAAANIilAAAABm1BMVEUAAACZmZmZmZmZmZmZmZmZ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZll/aOX AAAAiHRSTlMAAQIDBAUICQsODxAREhMUFRYXGRocHR8gISMkJSYnKistLi8wMTI0NTY4Ojs8PT4/ QEFER0pLTU5PUFFUVVldXl9hYmNkZmlrbG1zdHd5fn+Ag4aIiYuMjo+RlJWXmJudnqKjpaqrra+w tLW5vsDFx8zOz9HT1dfZ2tze4uTm6e3v8fX3+fv9ycTzRAAAArpJREFUeNqt1WO/7TgYhvEr7T62 bdu2bdu2tY32/tjzW0jadKGZmfN/HecBzZmxK04+ePO1r+/rmwcnV4w1BIsW30vlSe8tiQgx5kqi JpIrY8qn3lJLt9pPj86qrbMRLU3/qRI/p9HCUQU4QjPmuoJcMzSIXyjQ85gC81LBnht8NxROV/Ec V1H4q81U3Zo5+7+rhQ+7Zq5W3TSc6LdqvgNMu6cmbk8G+KaaHxHWedUdpWrcayl5d+nQtk2bth26 9C6R3kyk6rDqzlI3TtZK6uaNI2fcfOpWyLJxflfWNEpMk3WruLFmUWKmCltfl7OcEsvkXAGIEzkX KHFezlAELFXmISXuK7MEeCCnaxglhnXJuQcm9dYqs1hOahgn5xMBPskZyyo5WwiwRc4KTssZRYDR ck7xSA5B5DzgraxOgnTJesN3WR8I8lHWV/pl/SbIH1l9DMoaIkgia5BuOYYARk4XX+SMo5wfVI/l rCPAWjmPOCvnFgGuyTnDZjnpMEpFQ3I2MkWZPZTaqsxkolTOwHBKdPTKSSJ4qswTQ1vmkTKPgY3K uWNow9xTzgZgmPLej6alsR+Uk3YA3FbFw8u/VZGeHUFTI8+nyrtJxWRJSoYxbGqPqp6vH2vwmHGb XqpgIlXPJenjKIbxS9bn4bk9v6rRM2omqCKZwcRJsnaTs1uNxlN3URX9wzm+L2sHzcKqWW+JO1Vx j5hzNuY9j1XQGePMto1v+fSFbxJ9OzkazzEVzCbnoCquAUsXMY+DI/DslO9Asw42l4qZRPi2yXMf n3klSckGMi0nvzIUxK9V8ePIqpkTJs2fgGe7cl7HNIgeK7Oj9Z0fRzRzQs5OaBElJ2lhQY8XYJk9 qutZSEvDrjQvSHtVc3UY7Ux8poq9ePap4vkkyky8mkgr8ayS0msTCREvW0LBkuUd/GX/AMEwIhi5 wxyfAAAAAElFTkSuQmCC --AGL1zWUQ2OBFyXlPCz2wOiPwhLiIOGcwPMZLP5Qq-- --JL52eQ6MnrtszWBQrrFfWohFhUWsLvZJyCsuanZo-- ``` </details> ### Additional Context I have verified the MIME source of the email. Vaultwarden generates a perfectly valid email with `Content-Transfer-Encoding: quoted-printable`. However, because the JWT token makes the invitation URL extremely long, it forces soft line breaks (=) in the source code. Plaintext ``` ...organizationName=3DDomain&organizationId=3D4984a04d= -e7e0-484a-92a7-1316fa4b50df... ``` While this is technically a client-side clipboard/parsing bug in SOGo and K-9 Mail (as proven by the fact that the "Geary" client handles it correctly), Vaultwarden's extremely long JWT-based URLs make the quoted-printable encoding highly fragile across the email ecosystem. Users often end up copying the truncated display value instead of the `href` target. **Suggestion for Vaultwarden:** Instead of altering the token length or architecture, a robust and simple fix would be to change the `Content-Transfer-Encoding` for these emails from `quoted-printable` to `base64`. Using `base64` would completely eliminate the need for soft line breaks (`=`) inside the long URLs within the MIME source, avoiding these widespread copy-paste rendering bugs in strict or flawed email clients.
GiteaMirror added the bug label 2026-07-13 20:29:10 -05:00
Author
Owner

@BlackDex commented on GitHub (Jul 6, 2026):

The problem with base64 is that those are flagged earlier as spam, especially if there are links in them.

The RFC states that clients need to merge the line breaks, so the clients are the actual problem here, not Vaultwarden.

<!-- gh-comment-id:4892548097 --> @BlackDex commented on GitHub (Jul 6, 2026): The problem with base64 is that those are flagged earlier as spam, especially if there are links in them. The RFC states that clients need to merge the line breaks, so the clients are the actual problem here, not Vaultwarden.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/vaultwarden#35651