I made a sword, gave it materials , and then I sent it to my friend. My friend got the sword in pink (When blender does not know where the textures are). Is there any way to permanently bind the materials to the mesh? So that when another person opens the mesh the materials are already there.
This is not material issue, rather texture issue. To solve this you need to either send the other person textures that you are using for that material or go to:
File -> External Data -> Pack resources, now save your file and send it to him once again.
Now it should work as supposed to
Also please remember that if the material or world is pink, it means that there is a texture missing from the material. You sent him your file that only contains path to how to get to that texture on your PC, but he cannot access files on your PC so he needs that image packed with file