You can't capture emails addressed to yahoo.com since Yahoo's MX records don't point to your server, so they'll never get routed through your postfix service.
If you're trying to create a catchall for a specific domain what you'll need to do is create a Virtual Domain file for postfix
sudoedit /etc/postfix/virtual
In the virtual file add the following:
@vrk.com vinod
Replace @vrk.com
with the name of the domain you want to create the catch-all with (in your question this is where yahoo.com
goes - however, as mentioned prior, you can't actually use yahoo.com
as a valid domain since Yahoo's mail doesn't route to you) and the vinod
part should be replaced with the email username that the catch-all should go to.
Once you've created this file you'll need to encode it. That is done simply with the following:
postmap /etc/postfix/virtual
This does all the jazz (encoding, validating, etc) that Postfix needs in order to read it. To finish things up you'll want to add some lines to the configuration file and restart postfix
Open the configuration file with sudoedit /etc/postfix/main.cf
and add this line to the bottom
virtual_alias_maps = hash:/etc/postfix/virtual
Then the restart with sudo service postfix restart
!