     /**
      Returns the open URL for the mail client, based on its custom URL scheme.
 
-     - Returns: A `NSURL` opening the mail client.
+     - Returns: A `URL` opening the mail client.
      */
     public func openURL() -> URL {
-        if let openURL = URL(string: "\(URLScheme):\(URLRoot ?? "")") {
-            return openURL
-        } else {
-            return URLComponents().url!
-        }
+        var components = URLComponents()
+        components.scheme = URLScheme
+        return components.url ?? URLComponents().url!
     }
 }
-

    /// The custom URL scheme of the mail client.
    public let URLScheme: String

    /// The URL “root” slashes (after the URL scheme and the colon).
    let URLRoot: String?
    
    /// The URL compose keyword (after the URL scheme, colon and slashes).
    let URLCompose: String?

    /// The URL query items key for the recipient.
    let URLRecipientKey: String?

     - Returns: A `NSURL` opening the mail client for the given parameters.
     */
    public func composeURL(_ recipient: String?, subject: String?, body: String?) -> URL {
        var components = URLComponents(string: "\(URLScheme):\(URLRoot ?? "")")
        components?.scheme = self.URLScheme

        if URLRecipientKey == nil {
            if let recipient = recipient {
                components = URLComponents(string: "\(URLScheme):\(URLRoot ?? "")\(recipient)")
            }
        }

