'Retrieve data in line mode.  A new port is created for you.
Args:
cmd: A RETR, LIST, NLST, or MLSD command.
callback: An optional single parameter callable that is called
for each line with the trailing CRLF stripped.
[default: print_line()]
Returns:
The response code.'

def retrlines(self, cmd, callback=None):

    if (callback is None):
        callback = print_line
    resp = self.sendcmd('TYPE    A')
    conn = self.transfercmd(cmd)
    fp = conn.makefile('rb')
    while 1:
        line = fp.readline()
        if (self.debugging > 2):
            print '*retr*', repr(line)
        if (not line):
            break
        if (line[(-2):] == CRLF):
            line = line[:(-2)]
        elif (line[(-1):] == '\n'):
            line = line[:(-1)]
        callback(line)
    fp.close()
    conn.close()
    return self.voidresp()
