Enviar Mensajes de Outlook desde otro usuario

Exchange Online proporciona permisos de buzón que permiten a un usuario enviar correo electrónico que parece enviado desde la dirección de otro usuario, una lista de distribución, un grupo, un recurso o un buzón compartido. Microsoft Graph también es compatible con esta característica, pero el resultado final varía según los permisos exactos en Exchange Online y la API que se usa para enviar el mensaje.

Permisos

Se aplican dos tipos de permisos al envío de mensajes de otro usuario:

Permisos de Microsoft Graph

Para enviar mensajes de otro usuario, las aplicaciones que utilizan los tokens de usuario usan el permiso Mail.Send.Shared.

Nota:

Las aplicaciones que utilizan los tokens de aplicación en lugar de los tokens de usuario y tienen aceptado el permiso Mail.Send por parte de un administrador pueden enviar correo como cualquier usuario de la organización; lo hacen enviando correo de la forma habitual, a través del buzón del usuario.

Permisos de buzones de correo

Dos permisos afectan el resultado final de enviar un mensaje de otro usuario: Enviar en nombre de y Enviar como. El usuario que ha iniciado sesión en la aplicación con el permiso Mail.Send.Shared DEBE tener, al menos, uno de estos permisos concedido al buzón, grupo o lista de distribución del que procede el correo.

Nota:

Actualmente no es posible usar Microsoft Graph para consultar para qué buzones tiene permisos el usuario autenticado.

Enviar en nombre de

Con este permiso, el destinatario del correo electrónico tiene una indicación en su cliente de correo electrónico de que el usuario de la aplicación envió el mensaje en nombre de otro usuario.

Captura de pantalla de Outlook en la Web que indica que un mensaje fue enviado por un usuario en nombre de otro

Esto se expone en Microsoft Graph como las sender propiedades (el usuario que realmente envió el mensaje) y from (el usuario, el grupo, etc., que el mensaje parece ser de).

{
  "id": "AAMkAGE1...",
  "subject": "Send mail test",
  "sender": {
    "emailAddress": {
      "name": "Adele Vance",
      "address": "AdeleV@contoso.com"
    }
  },
  "from": {
    "emailAddress": {
      "name": "Pradeep Gupta",
      "address": "PradeepG@contoso.com"
    }
  }
}

Un usuario puede conceder permiso a otro para usar su buzón con Outlook. Los administradores pueden conceder este permiso para cualquier lista de distribución, grupo o buzón en el Centro de administración de Microsoft 365.

Enviar como

Con este permiso, no hay ninguna indicación de que se envió el mensaje como un usuario diferente. Las propiedades sender y from tienen el mismo valor.

Los usuarios no pueden conceder este permiso a sus buzones. Los administradores pueden conceder este permiso en el Centro de administración de Microsoft 365.

Envíos con Microsoft Graph

Puede enviar mensajes de otro usuario enviándolo directamente o creando un borrador y enviándolo después.

Para enviar correo de otro usuario, configure la propiedad from en el mensaje enviado a la dirección de correo electrónico del usuario como enviar desde. No es necesario establecer la sender propiedad: Microsoft Graph la establece correctamente, en función de los permisos de buzón concedidos al usuario que ha iniciado sesión.

Por ejemplo, para enviar correo desde el grupo sales@contoso.com, configure el mensaje como se muestra a continuación.

{
  "subject": "January sales report",
  "toRecipients": [
    {
      "emailAddress": {
        "address": "MeganB@contoso.com"
      }
    }
  ],
  "from": {
    "emailAddress": {
      "address": "sales@contoso.com"
    }
  }
}

Comportamiento de elementos enviados

Después de enviar el mensaje, se puede guardar en la carpeta Elementos enviados del usuario que realmente lo envió, en la carpeta Elementos enviados de usuario que aparece como remitente o en ambas. También es posible no guardarlo en absoluto.

Nota:

Si el mensaje se envió desde una dirección que no tiene un buzón de correo (por ejemplo, una lista de distribución), no hay Elementos enviados para el usuario que aparece como remitente.

  • Si se envía la aplicación con el punto de conexión /me (o /users/{user-id}, donde el user-id corresponde al usuario que ha iniciado sesión), de forma predeterminada, el mensaje se guardará en la carpeta Elementos enviados del usuario que envía el correo.
  • Si se envía la aplicación con /users/{user-id}, donde user-id corresponde al usuario que aparece como remitente, de forma predeterminada, el mensaje se guardará en la carpeta Elementos enviados del usuario que aparece como remitente.

    Importante

    Para enviar correos de este modo, el usuario que envía debe tener el permiso de buzón Acceso completo, además de uno de los permisos Enviar en nombre de o Enviar como.

El comportamiento predeterminado puede cambiar en función de otros factores externos:

  • Los administradores pueden actualizar el buzón del usuario que aparece como remitente para guardar siempre una copia de los mensajes enviados desde un delegado en sus Elementos enviados.
  • Al configurar la propiedad saveToSentItems con el valor false en una solicitud enviar correo, puede impedir que el elemento se guarde en la carpeta Elementos enviados. Sin embargo, si un administrador ha configurado la opción "guardar siempre una copia", el mensaje se seguirá guardando en los Elementos enviados del usuario que aparece como remitente.

Ejemplos

Ejemplo 1: enviar correctamente a través del punto de conexión /me

En este ejemplo, se ha concedido a Marta Galván el permisoEnviar en nombre de para acceder al buzón de Nerea Núñez.

Solicitud

POST /me/sendmail
Content-Type: application/json

{
  "message": {
    "subject": "Expense reports",
    "body": {
      "contentType": "text",
      "content": "Have you submitted your expense reports yet?"
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "MeganB@contoso.com"
        }
      }
    ],
    "from": {
      "emailAddress": {
        "address": "AllanD@contoso.com"
      }
    }
  }
}

Respuesta

HTTP/1.1 202 Accepted

Ejemplo 2: intento fallido de enviar sin permisos

En este ejemplo, Marta Galván intenta enviar un correo electrónico como Edurne Chávez, pero no se le han concedido los permisos Enviar en nombre de o Enviar como. La respuesta contiene un error ErrorSendAsDenied.

Solicitud

POST /me/sendmail
Content-Type: application/json

{
  "message": {
    "subject": "Support ticket",
    "body": {
      "contentType": "text",
      "content": "I noticed you opened a support ticket yesterday..."
    },
    "toRecipients": [
      {
        "emailAddress": {
          "address": "MeganB@contoso.com"
        }
      }
    ],
    "from": {
      "emailAddress": {
        "address": "PattiF@contoso.com"
      }
    }
  }
}

Respuesta

HTTP/1.1 403 Forbidden
Content-Type: application/json

{
  "error": {
    "code": "ErrorSendAsDenied",
    "message": "The user account which was used to submit this request does not have the right to send mail on behalf of the specified sending account. Cannot submit message.",
    "innerError": {
      "request-id": "24e7991e-01ae-4cc2-8e06-532a96fd8948",
      "date": "2019-01-16T18:53:25"
    }
  }
}

Pasos siguientes