Hi,
This is an example:
set interface ethernet0/4 ip 99.99.99.1/24 (Untrust zone)
... DIP definition
set interface ethernet0/4 dip 4 99.99.99.11 99.99.99.11
set interface ethernet0/4 dip 5 99.99.99.12 99.99.99.12
set interface ethernet0/4 dip 6 99.99.99.13 99.99.99.13
... Inbound policies:
set policy from "Untrust" to "Untrust" "Any" "99.99.99.11/32" "SMTP" nat dst ip 10.10.10.11 permit
set policy from "Untrust" to "Untrust" "Any" "99.99.99.11/32" "HTTP" nat dst ip 10.10.10.12 permit
...etc...
... Outbound policies:
set policy from "Trust" to "Untrust" "10.10.10.0/24" "Any" "ANY" nat src dip-id 4 permit
set policy from "Trust" to "Untrust" "10.10.20.0/24" "Any" "ANY" nat src dip-id 5 permit
set policy from "Trust" to "Untrust" "10.10.30.0/24" "Any" "ANY" nat src dip-id 6 permit
Sure, you can use specific protocols instead of "ANY". Do not forget to select the proper dip while configuring the policies.
If you are using GUI click on the "Advanced" button to proceed to the src and dst NAT options.
Also you should use the route mode on all internal interfaces to disable interface based NAT. Interface based NAT is very unflexible. I never use this kind of NAT.