It might work.
sed -i -e "s|http[:]//[^ ]*|<a href=\"\0\">\0</a>|g" yourfile.txt
It depends on which URL is followed by a space (which is not always the case).
You can make similar emails.
sed -i -e "s|\w+@\w+\.\w+(\.\w+)?|<a href=\"mailto:\0\">\0</a>|g" yourfile.txt
Those can start. I suggest abandoning the -i option to test your output before making changes to the line.