A third employee was injured in a fall while trying to escape.
None of the injuries were believed to be life-threatening, police said.
"They're all at the hospital. They are being cared for right now," Des Moines police official Paul Parizek said of the victims, two women and a man.
Parizek said officers responded within three minutes and quickly captured the suspect, who was detained along a nearby bike path without resistance.
The shooting happened on the facility's second floor, in an area not accessible to the public.
Witnesses reported hearing 10 to 12 shots, he said.
The post office is just north of downtown Des Moines and across the street from one of the city's main hospitals.
An email seeking comment from the US Postal Inspection Service was sent on Thursday.
Governor Kim Reynolds said she was in contact with the Department of Public Safety regarding the shooting.
"We are monitoring the situation and our prayers are with everyone involved," she posted online.
"Grateful for the immediate response by law enforcement."
Des Moines Public Schools said the district's nearby primary school, welcome centre and nutrition centre temporarily barred anyone from entering or leaving its facilities after police notified the district of the shooting at 9.20am.
That status was lifted after police notified them at 10am that a suspect was in custody.