Postfix appends the value of the main.cf 'myorigin' parameter to unqualified sender addresses. So you should set $myorigin to whichever of 'domain1.com', 'domain2.com' or 'domain3.com' is the normal default.
Postfix doesn't do anything special to prevent any address/domain being used as the sender. You can enforce it if you like using a check_sender_access map in smtpd_mumble_restrictions.
If you want to use the value of the 'From:' header to specify the envelope sender, you can use 'sendmail -t' to trust the headers. Only do this for mail for which you really do trust the headers (i.e., don't use it in content filters where mail may have been BCC-ed or otherwise have headers that don't match the envelope).
As Evan said above, the mynetworks main.cf parameter usually controls which clients can use your server as a relay. See the BASIC_CONFIGURATION_README, SOHO_README or STANDARD_CONFIGURATION_README that comes with your distribution or via http://www.postfix.org/documentation.html.
Local submission via the sendmail command can use '-f' to specify the sender. Do check authorized_submit_users to make sure the nobody user can use local submission. The upstream default is
$ postconf authorized_submit_users
authorized_submit_users = static:anyone
but your distribution may set it to something else by default.