Hola
martini002, este tema no tiene nada que ver con el tratado en este hilo.
De todas formas, no has explicado realmente el problema que tienes
O sea, cuando envía el email te sale el mensaje "mensaje enviado exitosamente" y cuando salte una exception saldrá "error al enviar el mensaje".
El problema es que tienes que tratarlo de otra forma, idSMTP1.Send(idmessage1) debe devolver un valor que indica si ha sido enviado el mensaje o si ha habido algún error. Es ese valor el que debes tratar.
Ya que tal y como lo tienes ahora mismo, el mensaje se envía (mejor dicho, se ejecuta idsmtp.send sin error) y nunca saltará la exception. Incluso aunque no se haya podido enviar el mensaje.