lib/mailto.js
function getMailtoUrl(to, fields){
    this.form.action.match(/mailto:([^\?&]+)/);

    to = to || RegExp.$1 || '';
    fields = fields || {
      subject: this.form.getAttribute('data-subject') || '',
      body: this.getBody()
    };

    if (!to && !fields.to){
      throw new Error('Could not find any person to send an email to.');
    }

    return 'mailto:'+to+'?'+Object.keys(fields).reduce(function(a, b, i){
      return a +
        (i > 0 ? '&' : '') +
        encodeURIComponent(b) + '=' +
        encodeURIComponent(fields[b]).replace(/%0A(?!%)/g, '%0D%0A') +    // fixing *nix line break encoding to follow RFC spec
        (b === 'body' ? '%0D%0A' : '')
    }, '');
  }
function getMailtoUrl(to, fields){
    this.form.action.match(/mailto:([^\?&]+)/);

    to = to || RegExp.$1 || '';
    fields = fields || {
      subject: this.form.getAttribute('data-subject') || '',
      body: this.getBody()
    };

    if (!to && !fields.to){
      throw new Error('Could not find any person to send an email to.');
    }

    return 'mailto:'+to+'?'+Object.keys(fields).reduce(function(a, b, i){
      return a +
        (i > 0 ? '&' : '') +
        encodeURIComponent(b) + '=' +
        encodeURIComponent(fields[b]).replace(/%0A(?!%)/g, '%0D%0A') +    // fixing *nix line break encoding to follow RFC spec
        (b === 'body' ? '%0D%0A' : '')
    }, '');
  }
Returns an hyperlinkable representation of the form values.

@api
@return {String}