Sending code only generally means that you must have agreed to whatever license grants you the right to prepare and distribute that code.A copyright license isn't something one agrees to -- it's a unilateral thing: the author grants a license; the copier uses it to copy (prepare and distribute).
And it's certainly possible to prepare and distribute without complying with conditions of any license, i.e. not having a license at all. It's a copyright infringement, but it can happen.
So it's even more important than you say for projects accepting code to get an explicit license from the author to distribute it. Plus whatever assurance they can get that nobody else has copyright without licensing the code to the project.
As such, projects probably shouldn't accept contributions without some sort of actual agreementBut an agreement isn't really necessary.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds