diff --git a/lib/mv_web/live/member_live/index.ex b/lib/mv_web/live/member_live/index.ex index bb2f9fc..25c23f9 100644 --- a/lib/mv_web/live/member_live/index.ex +++ b/lib/mv_web/live/member_live/index.ex @@ -1126,6 +1126,9 @@ defmodule MvWeb.MemberLive.Index do # Updates selection-related assigns (selected_count, any_selected?, mailto_bcc) # to avoid recalculating Enum.any? and Enum.count multiple times in templates. + # + # Note: Mailto URLs have length limits that vary by email client. + # For large selections, consider using export functionality instead. defp update_selection_assigns(socket) do members = socket.assigns.members selected_members = socket.assigns.selected_members @@ -1140,6 +1143,7 @@ defmodule MvWeb.MemberLive.Index do if any_selected? do format_selected_member_emails(members, selected_members) |> Enum.join(", ") + |> URI.encode_www_form() else "" end diff --git a/lib/mv_web/live/member_live/index.html.heex b/lib/mv_web/live/member_live/index.html.heex index b01db85..13c4367 100644 --- a/lib/mv_web/live/member_live/index.html.heex +++ b/lib/mv_web/live/member_live/index.html.heex @@ -16,7 +16,7 @@ <.button class="secondary" id="open-email-btn" - href={"mailto:?bcc=" <> URI.encode(@mailto_bcc)} + href={"mailto:?bcc=" <> @mailto_bcc} disabled={not @any_selected?} aria-label={gettext("Open email program with BCC recipients")} >