all the arguments are lists
    returns a list of dictionaries; each dictionary "represent" an attachment

def attach_list(filepaths, notes):
    '''
    all the arguments are lists
    returns a list of dictionaries; each dictionary "represent" an attachment
    '''
    assert type(filepaths) in (list, tuple)
    assert type(notes) in (list, tuple)

    # this if clause means "if those lists are not of the same length"
    if len(filepaths) != len(notes):
        die('The number of --filepath, and --notes must be the same')

    attach_list = []
    for fname, note in zip(filepaths, notes):
        name = os.path.basename(fname)
        assert os.path.exists(fname)
        mime = mimetypes.guess_type(fname)[0]
        if mime is not None and '/' not in mime:
            mime = None
        attach_list.append({
            'file': fname,
            'name': name,
            'mime': mime,
            'note': note
        })
    return attach_list