   The recipient must be; a tuple specifying the name and address of the recipient; a string specifying the
   address of the recipient; or an array comprised of a combination of either.
 
-        iex> %Swoosh.Email{} |> bcc("steve@rogers.com")
-        %Swoosh.Email{assigns: %{}, attachments: nil, bcc: [{"", "steve@rogers.com"}],
-         cc: [], from: nil, headers: %{}, html_body: nil,
-         private: %{}, provider_options: %{}, reply_to: nil, subject: "",
-         text_body: nil, to: []}
+      iex> %Swoosh.Email{} |> bcc("steve@rogers.com")
+      %Swoosh.Email{assigns: %{}, attachments: nil, bcc: [{"", "steve@rogers.com"}],
+       cc: [], from: nil, headers: %{}, html_body: nil,
+       private: %{}, provider_options: %{}, reply_to: nil, subject: "",
+       text_body: nil, to: []}
   """
   def bcc(%__MODULE__{bcc: bcc} = email, recipients) when is_list(recipients) do
     recipients =


  ## Examples

      iex> %Swoosh.Email{} |> put_private(:phoenix_template, "welcome.html")
      %Swoosh.Email{assigns: %{}, attachments: nil, bcc: [], cc: [], from: nil,
       headers: %{}, html_body: nil, private: %{phoenix_template: "welcome.html"},
       provider_options: %{}, reply_to: nil, subject: "", text_body: nil, to: []}
  """
  def put_private(%__MODULE__{private: private} = email, key, value) when is_atom(key) do
    %{email | private: Map.put(private, key, value)}


  ## Examples

      iex> %Swoosh.Email{} |> subject("Hello, Avengers!")
      %Swoosh.Email{assigns: %{}, attachments: nil, bcc: [],
       cc: [], from: nil, headers: %{}, html_body: nil,
       private: %{}, provider_options: %{}, reply_to: nil, subject: "Hello, Avengers!",
       text_body: nil, to: []}
  """
  def subject(email, subject), do: %{email|subject: subject}

