In a letter, the president postponed Speaker Nancy Pelosi's planned visit with U.S. troops, calling it a "public relations event."