The setRecipient and addRecipient tags never update their addresses if you set them dynamically in the tag's body. The tags pickup the first address ever set in the tag body, and then use it over and over, regardless of how it changes. <mt:setrecipient type="to"><%= toEmailAddr %></mt:setrecipient> I downloaded the source and fixed this problem in my local copy by adding this line: address = null; // reset address to the doAfterBody() just above the return statement. Please note that this bug prevents the dynamic setting of email addresses when sending mail since the other ways of setting to addresses do not allow dynamic values. I am running on solaris 8, with Dynamo 5.5 app server.
Address is reset to null in the doAfterBody method