Struts 2 - Enviando email com URL incorporada

Para um projeto para minha empresa, tenho que enviar e-mails contendo URLs incorporados, que o usuário será solicitado a seguir.

Por exemplo, uma pessoa se registra no site e, em seguida, o aplicativo Struts2 envia um email para a pessoa em que há um URL para confirmar a assinatura.

Até agora, o envio do formulário e o envio do email (de dentro da ação) funcionam bem. O problema em que estou preso é que não consigo encontrar uma maneira de gerar o URL que gostaria de incorporar no corpo do email.

Eu devo estar fazendo do jeito errado, mas eu estava pensando em algo como o seguinte:

public String send() throws Exception {
    StringBuffer body = new StringBuffer();

    HashMap<String, String> params = new HashMap<String, String>();
    params.put("id", "xxxxxyyyyyaaaaa");

    body.append("Veuillez vous rendre ici :");
    body.append(UrlManager.getUrlForAction("action", params));

    SendMail sendMail = new SendMail();
    sendMail.send("[email protected]", "Information", body.toString());

    return SUCCESS;
}

onde haveria umUrlManager (algo que poderia ser disponibilizado pelo framework) com um métodogetUrlForAction() que obtém uma ação e seus parâmetros como entrada e que gera uma String contendo a URL correspondente (comohttp://mysite.mycompany.com/confirm?id=xxxxxyyyyyaaaaa).

Alguém tem alguma idéia ou ponte sobre como fazer isso?

EDITAR:

Eu tentei usarUrlProvider, mas eu recebo uma exceção de ponteiro nulo nodetermineActionUrl ligar. Talvez eu esteja usando da maneira errada.

HashMap<String,Object> params = new HashMap<String,Object>();
params.put("id", data.getMd5());

UrlProvider up = new ComponentUrlProvider(
                            new Component(ServletActionContext.getValueStack(ServletActionContext.getRequest())),
                            ServletActionContext.getRequest().getParameterMap());
downloadUrl = up.determineActionURL("confirm", "/", "GET",
                                    ServletActionContext.getRequest(),
                                    ServletActionContext.getResponse(),
                                    params,
                                    "http", true, true, true, true);

questionAnswers(2)

yourAnswerToTheQuestion