Office.Mailbox interface
Proporciona acceso al modelo de objetos del complemento de Microsoft Outlook.
Propiedades clave:
diagnostics
: proporciona información de diagnóstico a un complemento de Outlook.item
: proporciona métodos y propiedades para acceder a un mensaje o una cita en un complemento de Outlook.userProfile
: proporciona información sobre el usuario en un complemento de Outlook.
Comentarios
Nivel mínimo de permiso: restringido
Modo de Outlook aplicable: Compose o lectura
Ejemplos
Office.onReady(() => {
document.addEventListener('DOMContentLoaded', () => {
// Get a reference to the mailbox and use it to add an event handler.
const mailbox = Office.context.mailbox;
mailbox.addHandlerAsync(Office.EventType.ItemChanged, loadNewItem, (result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
// Handle error.
}
});
});
});
function loadNewItem(eventArgs) {
const item = Office.context.mailbox.item;
// Check that item isn't null.
if (item !== null) {
// Work with item. For example, define and call a function that
// loads the properties of the newly selected item.
loadProps(item);
}
}
Propiedades
diagnostics | Proporciona información de diagnóstico a un complemento de Outlook. Contiene los siguientes miembros.
Más información en Office.Diagnostics. |
ews |
Obtiene la dirección URL del punto de conexión de Servicios Web Exchange (EWS) para esta cuenta de correo electrónico. |
item | Elemento de buzón de correo. Dependiendo del contexto en el que se abra el complemento, el tipo de elemento puede variar. Si desea ver IntelliSense solo para un tipo o modo específico, convierta este elemento en uno de los siguientes: MessageCompose, MessageRead, AppointmentCompose, AppointmentRead Importante:
|
user |
Información sobre el usuario asociado al buzón de correo. Esto incluye el tipo de cuenta, el nombre para mostrar, la dirección de correo electrónico y la zona horaria. Más información en Office.UserProfile |
Métodos
convert |
Obtiene un diccionario con información de tiempo en el tiempo del cliente local. La zona horaria usada por el cliente de Outlook varía según la plataforma. Outlook en Windows (clásico) y en Mac usan la zona horaria del equipo cliente. Outlook en la Web y la nueva Outlook en Windows usan la zona horaria establecida en el Centro de Administración de Exchange (EAC). Debería tratar los valores de fecha y hora de modo que los valores que aparezcan en la interfaz de usuario sean siempre coherentes con la zona horaria que el usuario espera. En Outlook en Windows (clásico) y en Mac, el |
convert |
Obtiene un El |
display |
Muestra una cita de calendario existente. El En Outlook en Mac, puede usar este método para mostrar una sola cita que no forme parte de una serie periódica o la cita maestra de una serie periódica. Sin embargo, no se puede mostrar una instancia de la serie porque no se puede acceder a las propiedades (incluido el identificador de elemento) de las instancias de una serie periódica. En Outlook en la Web y nueva Outlook en Windows, este método abre el formulario especificado solo si el cuerpo del formulario es menor o igual que 32 000 caracteres. Si el identificador de elemento especificado no identifica una cita existente, se abre un panel en blanco en el equipo o dispositivo cliente y no se devuelve ningún mensaje de error. |
display |
Muestra un mensaje existente. El En Outlook en la Web y nueva Outlook en Windows, este método abre el formulario especificado solo si el cuerpo del formulario es menor o igual que 32 000 caracteres. Si el identificador de elemento especificado no identifica un mensaje existente, no se mostrará ningún mensaje en el equipo cliente y no se devolverá ningún mensaje de error. |
display |
Muestra un formulario para crear una cita de calendario. El método En Outlook en la Web y nueva Outlook en Windows, este método siempre muestra un formulario con un campo de asistentes. Si no especifica ningún asistente como argumentos de entrada, el método muestra un formulario con un botón Guardar . Si ha especificado asistentes, el formulario incluirá a los asistentes y un botón Enviar. En Outlook en Windows (clásico) y en Mac, si especifica asistentes o recursos en el Si cualquiera de los parámetros supera los límites de tamaño especificados o si se especifica un nombre de parámetro desconocido, se genera una excepción. |
get |
Obtiene una cadena que contiene un token usado para obtener datos adjuntos o un elemento de Exchange Server. El método El token se devuelve como una cadena en la |
get |
Obtiene un token que identifica al usuario y al complemento de Office. El token se devuelve como una cadena en la |
make |
Realiza una solicitud asincrónica a un servicio de Exchange Web Services (EWS) en el servidor exchange que hospeda el buzón del usuario. El método |
Detalles de las propiedades
diagnostics
Proporciona información de diagnóstico a un complemento de Outlook.
Contiene los siguientes miembros.
hostName
(cadena): cadena que representa el nombre de la aplicación de Office. Debe ser uno de los siguientes valores:Outlook
,newOutlookWindows
,OutlookWebApp
,OutlookIOS
o .OutlookAndroid
Nota: El valor "Outlook" se devuelve para Outlook en Windows (clásico) y en Mac.hostVersion
(cadena): cadena que representa la versión de la aplicación de Office o la Exchange Server (por ejemplo, "15.0.468.0"). Si el complemento de correo se ejecuta en Outlook en Windows (clásico), en Mac o en dispositivos móviles, lahostVersion
propiedad devuelve la versión del cliente de Outlook. En Outlook en la Web y nueva Outlook en Windows, la propiedad devuelve la versión del Exchange Server.OWAView
(MailboxEnums.OWAView
o cadena): enumeración (o literal de cadena) que representa la vista actual de Outlook en la Web. Si la aplicación no está Outlook en la Web, el acceso a esta propiedad da como resultado undefined. Outlook en la Web tiene tres vistas ( -OneColumn
mostradas cuando la pantalla es estrecha,TwoColumns
- mostradas cuando la pantalla es más ancha yThreeColumns
- mostradas cuando la pantalla es ancha) que corresponden al ancho de la pantalla y a la ventana, y el número de columnas que se pueden mostrar.
Más información en Office.Diagnostics.
diagnostics: Diagnostics;
Valor de propiedad
Comentarios
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
A partir del conjunto de requisitos de buzón 1.5, también puede usar la propiedad Office.context.diagnostics para obtener información similar.
Ejemplos
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/90-other-item-apis/get-diagnostic-information.yaml
// This function gets a mailbox's diagnostic information, such as Outlook client and version, and logs it to the console.
const diagnostics = Office.context.mailbox.diagnostics;
console.log(`Client application: ${diagnostics.hostName}`);
console.log(`Client version: ${diagnostics.hostVersion}`);
switch (diagnostics.OWAView) {
case undefined:
console.log("Current view (Outlook on the web only): Not applicable. An Outlook desktop client is in use.");
break;
case Office.MailboxEnums.OWAView.OneColumnNarrow:
console.log("Current view (Outlook on the web only): Viewed from an older generation mobile phone");
break;
case Office.MailboxEnums.OWAView.OneColumn:
console.log("Current view (Outlook on the web only): Viewed from a newer generation mobile phone");
break;
case Office.MailboxEnums.OWAView.TwoColumns:
console.log("Current view (Outlook on the web only): Viewed from a tablet");
break;
case Office.MailboxEnums.OWAView.ThreeColumns:
console.log("Current view (Outlook on the web only): Viewed from a desktop computer");
break;
}
ewsUrl
Obtiene la dirección URL del punto de conexión de Servicios Web Exchange (EWS) para esta cuenta de correo electrónico.
ewsUrl: string;
Valor de propiedad
string
Comentarios
[ Conjunto de API: Buzón 1.1 ]
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
Importante:
La aplicación debe tener el permiso de elemento de lectura especificado en su manifiesto para llamar al
ewsUrl
miembro en modo de lectura.En el modo de redacción, debe llamar al
saveAsync
método antes de poder usar elewsUrl
miembro. La aplicación debe tener permisos de elemento de lectura y escritura para llamar alsaveAsync
método .Esta propiedad no se admite en Outlook en Android o en iOS. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.
El valor
ewsUrl
puede usarse por un servicio remoto para realizar llamadas EWS al buzón del usuario. Por ejemplo, puede crear un servicio remoto para obtener datos adjuntos del elemento seleccionado.
Ejemplos
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/ids-and-urls.yaml
// Get the EWS URL and EWS item ID.
console.log("EWS URL: " + Office.context.mailbox.ewsUrl);
const ewsId = Office.context.mailbox.item.itemId;
console.log("EWS item ID: " + Office.context.mailbox.item.itemId);
// Convert the EWS item ID to a REST-formatted ID.
const restId = Office.context.mailbox.convertToRestId(ewsId, Office.MailboxEnums.RestVersion.v2_0);
console.log("REST item ID: " + restId);
// Convert the REST-formatted ID back to an EWS-formatted ID.
const ewsId2 = Office.context.mailbox.convertToEwsId(restId, Office.MailboxEnums.RestVersion.v2_0);
console.log("EWS ID (from REST ID): " + ewsId2);
item
Elemento de buzón de correo. Dependiendo del contexto en el que se abra el complemento, el tipo de elemento puede variar. Si desea ver IntelliSense solo para un tipo o modo específico, convierta este elemento en uno de los siguientes:
MessageCompose, MessageRead, AppointmentCompose, AppointmentRead
Importante:
Al llamar a
Office.context.mailbox.item
en un mensaje, tenga en cuenta que el panel de lectura del cliente de Outlook debe estar activado. Para obtener instrucciones sobre cómo configurar el panel de lectura, consulte Uso y configuración del panel de lectura para obtener una vista previa de los mensajes.item
puede ser null si el complemento admite el anclaje del panel de tareas. Para obtener más información sobre cómo controlar, vea Implementar un panel de tareas anclable en Outlook.
item?: Item & ItemCompose & ItemRead & Message & MessageCompose & MessageRead & Appointment & AppointmentCompose & AppointmentRead;
Valor de propiedad
userProfile
Información sobre el usuario asociado al buzón de correo. Esto incluye el tipo de cuenta, el nombre para mostrar, la dirección de correo electrónico y la zona horaria.
Más información en Office.UserProfile
userProfile: UserProfile;
Valor de propiedad
Detalles del método
convertToLocalClientTime(timeValue)
Obtiene un diccionario con información de tiempo en el tiempo del cliente local.
La zona horaria usada por el cliente de Outlook varía según la plataforma. Outlook en Windows (clásico) y en Mac usan la zona horaria del equipo cliente. Outlook en la Web y la nueva Outlook en Windows usan la zona horaria establecida en el Centro de Administración de Exchange (EAC). Debería tratar los valores de fecha y hora de modo que los valores que aparezcan en la interfaz de usuario sean siempre coherentes con la zona horaria que el usuario espera.
En Outlook en Windows (clásico) y en Mac, el convertToLocalClientTime
método devuelve un objeto de diccionario con los valores establecidos en la zona horaria del equipo cliente. En Outlook en la Web y nueva Outlook en Windows, el convertToLocalClientTime
método devuelve un objeto de diccionario con los valores establecidos en la zona horaria especificada en el EAC.
convertToLocalClientTime(timeValue: Date): LocalClientTime;
Parámetros
- timeValue
-
Date
Objeto Date
.
Devoluciones
Comentarios
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
convertToUtcClientTime(input)
Obtiene un Date
objeto de un diccionario que contiene información de hora.
El convertToUtcClientTime
método convierte un diccionario que contiene una fecha y hora locales en un Date
objeto con los valores correctos para la fecha y hora locales.
convertToUtcClientTime(input: LocalClientTime): Date;
Parámetros
- input
- Office.LocalClientTime
El valor de la hora local para convertir.
Devoluciones
Date
Objeto Date con el tiempo expresado en UTC.
Comentarios
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
Ejemplos
// Represents 3:37 PM PDT on Monday, August 26, 2019.
const input = {
date: 26,
hours: 15,
milliseconds: 2,
minutes: 37,
month: 7,
seconds: 2,
timezoneOffset: -420,
year: 2019
};
// result should be a Date object.
const result = Office.context.mailbox.convertToUtcClientTime(input);
// Output should be "2019-08-26T22:37:02.002Z".
console.log(result.toISOString());
displayAppointmentForm(itemId)
Muestra una cita de calendario existente.
El displayAppointmentForm
método abre una cita de calendario existente en una nueva ventana del escritorio.
En Outlook en Mac, puede usar este método para mostrar una sola cita que no forme parte de una serie periódica o la cita maestra de una serie periódica. Sin embargo, no se puede mostrar una instancia de la serie porque no se puede acceder a las propiedades (incluido el identificador de elemento) de las instancias de una serie periódica.
En Outlook en la Web y nueva Outlook en Windows, este método abre el formulario especificado solo si el cuerpo del formulario es menor o igual que 32 000 caracteres.
Si el identificador de elemento especificado no identifica una cita existente, se abre un panel en blanco en el equipo o dispositivo cliente y no se devuelve ningún mensaje de error.
displayAppointmentForm(itemId: string): void;
Parámetros
- itemId
-
string
Identificador de los servicios web de Exchange (EWS) para una cita de calendario existente.
Devoluciones
void
Comentarios
[ Conjunto de API: Buzón 1.1 ]
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
Importante: Este método no se admite en Outlook en Android o en iOS. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.
Ejemplos
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-existing-appointment.yaml
const itemId = $("#itemId").val();
Office.context.mailbox.displayAppointmentForm(itemId);
displayMessageForm(itemId)
Muestra un mensaje existente.
El displayMessageForm
método abre un mensaje existente en una nueva ventana del escritorio.
En Outlook en la Web y nueva Outlook en Windows, este método abre el formulario especificado solo si el cuerpo del formulario es menor o igual que 32 000 caracteres.
Si el identificador de elemento especificado no identifica un mensaje existente, no se mostrará ningún mensaje en el equipo cliente y no se devolverá ningún mensaje de error.
displayMessageForm(itemId: string): void;
Parámetros
- itemId
-
string
Identificador de los servicios web de Exchange (EWS) para un mensaje existente.
Devoluciones
void
Comentarios
[ Conjunto de API: Buzón 1.1 ]
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
Importante:
Este método no se admite en Outlook en Android o en iOS. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.
No use
displayMessageForm
con un itemId que represente una cita. Use el métododisplayAppointmentForm
para mostrar una cita existente ydisplayNewAppointmentForm
para mostrar un formulario para crear una cita nueva.
Ejemplos
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-existing-message.yaml
const itemId = $("#itemId").val();
Office.context.mailbox.displayMessageForm(itemId);
displayNewAppointmentForm(parameters)
Muestra un formulario para crear una cita de calendario.
El método displayNewAppointmentForm
abre un formulario que permite al usuario crear una nueva cita o reunión. Si se especifican parámetros, los campos de formulario de cita se rellenan automáticamente con el contenido de los parámetros.
En Outlook en la Web y nueva Outlook en Windows, este método siempre muestra un formulario con un campo de asistentes. Si no especifica ningún asistente como argumentos de entrada, el método muestra un formulario con un botón Guardar . Si ha especificado asistentes, el formulario incluirá a los asistentes y un botón Enviar.
En Outlook en Windows (clásico) y en Mac, si especifica asistentes o recursos en el requiredAttendees
parámetro , optionalAttendees
o resources
, este método muestra un formulario de reunión con un botón Enviar . Si no se especifica ningún destinatario, este método muestra un formulario de cita con un botón Guardar y cerrar.
Si cualquiera de los parámetros supera los límites de tamaño especificados o si se especifica un nombre de parámetro desconocido, se genera una excepción.
displayNewAppointmentForm(parameters: AppointmentForm): void;
Parámetros
- parameters
- Office.AppointmentForm
que AppointmentForm
describe la nueva cita. Todas las propiedades son opcionales.
Devoluciones
void
Comentarios
[ Conjunto de API: Buzón 1.1 ]
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Lectura
Importante: Este método no se admite en Outlook en Android o en iOS. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.
Ejemplos
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/55-display-items/display-new-appointment.yaml
const start = new Date();
const end = new Date();
end.setHours(start.getHours() + 1);
Office.context.mailbox.displayNewAppointmentForm({
requiredAttendees: ["bob@contoso.com"],
optionalAttendees: ["sam@contoso.com"],
start: start,
end: end,
location: "Home",
subject: "meeting",
resources: ["projector@contoso.com"],
body: "Hello World!"
});
getCallbackTokenAsync(callback, userContext)
Obtiene una cadena que contiene un token usado para obtener datos adjuntos o un elemento de Exchange Server.
El método getCallbackTokenAsync
realiza una llamada asincrónica para obtener un token opaco desde Exchange Server que hospeda el buzón del usuario. La duración del token de devolución de llamada es de 5 minutos.
El token se devuelve como una cadena en la asyncResult.value
propiedad .
getCallbackTokenAsync(callback: (asyncResult: Office.AsyncResult<string>) => void, userContext?: any): void;
Parámetros
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
Cuando se completa el método, se llama a la función pasada en el parámetro de devolución de llamada con un único parámetro de tipo Office.AsyncResult
. El token se devuelve como una cadena en la asyncResult.value
propiedad . Si se produjo un error, las propiedades asyncResult.error
y asyncResult.diagnostics
pueden proporcionar información adicional.
- userContext
-
any
Opcional. Cualquier dato de estado que se pasa al método asincrónico.
Devoluciones
void
Comentarios
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
Importante:
En octubre de 2024, los tokens heredados de identidad de usuario y devolución de llamada de Exchange se desactivarán de forma predeterminada para todos los inquilinos de Exchange Online. Esto forma parte de la Iniciativa de futuro seguro de Microsoft, que proporciona a las organizaciones las herramientas necesarias para responder al panorama actual de amenazas. Los tokens de identidad de usuario de Exchange seguirán funcionando para Exchange local. La autenticación de aplicaciones anidadas es el enfoque recomendado para los tokens en el futuro. Para obtener más información, consulte nuestra entrada de blog y página de preguntas más frecuentes.
Puede pasar el token y un identificador de datos adjuntos o un identificador de elemento a un sistema externo. Ese sistema usa el token como token de autorización de portador para llamar a la operación GetAttachment o GetItem de Exchange Web Services (EWS) para devolver datos adjuntos o elementos. Por ejemplo, puede crear un servicio remoto para obtener datos adjuntos del elemento seleccionado.
Llamar al
getCallbackTokenAsync
método en modo de lectura requiere un nivel de permiso mínimo de elemento de lectura.Llamar al
getCallbackTokenAsync
método en modo de redacción requiere que haya guardado el elemento. ElsaveAsync
método requiere un nivel de permiso mínimo de elemento de lectura y escritura.Este método no se admite en Outlook en Android o en iOS. Las operaciones de EWS no se admiten en complementos que se ejecutan en Outlook en clientes móviles. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.
Este método no se admite si carga un complemento en un buzón de correo de Outlook.com o Gmail.
Para obtener instrucciones sobre escenarios de delegación o compartidos, consulte el artículo carpetas compartidas y buzón compartido .
Errores:
HTTPRequestFailure
: se ha producido un error en la solicitud. Compruebe el objeto de diagnóstico para ver el código de error HTTP.InternalServerError
: el servidor Exchange devolvió un error. Compruebe el objeto de diagnóstico para obtener más información.NetworkError
: el usuario ya no está conectado a la red. Compruebe la conexión de red y vuelva a intentarlo.
getUserIdentityTokenAsync(callback, userContext)
Obtiene un token que identifica al usuario y al complemento de Office.
El token se devuelve como una cadena en la asyncResult.value
propiedad .
getUserIdentityTokenAsync(callback: (asyncResult: Office.AsyncResult<string>) => void, userContext?: any): void;
Parámetros
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
Cuando se completa el método, se llama a la función pasada en el parámetro de devolución de llamada con un único parámetro de tipo Office.AsyncResult
. El token se devuelve como una cadena en la asyncResult.value
propiedad . Si se produjo un error, las propiedades asyncResult.error
y asyncResult.diagnostics
pueden proporcionar información adicional.
- userContext
-
any
Opcional. Cualquier dato de estado que se pasa al método asincrónico.
Devoluciones
void
Comentarios
Nivel mínimo de permiso: elemento de lectura
Modo de Outlook aplicable: Compose o lectura
Importante:
En octubre de 2024, los tokens heredados de identidad de usuario y devolución de llamada de Exchange se desactivarán de forma predeterminada para todos los inquilinos de Exchange Online. Esto forma parte de la Iniciativa de futuro seguro de Microsoft, que proporciona a las organizaciones las herramientas necesarias para responder al panorama actual de amenazas. Los tokens de identidad de usuario de Exchange seguirán funcionando para Exchange local. La autenticación de aplicaciones anidadas es el enfoque recomendado para los tokens en el futuro. Para obtener más información, consulte nuestra entrada de blog y página de preguntas más frecuentes.
El
getUserIdentityTokenAsync
método devuelve un token que puede usar para identificar y autenticar el complemento y el usuario con un sistema externo.Este método no se admite si carga un complemento en un buzón de correo de Outlook.com o Gmail.
Errores:
HTTPRequestFailure
: se ha producido un error en la solicitud. Compruebe el objeto de diagnóstico para ver el código de error HTTP.InternalServerError
: el servidor Exchange devolvió un error. Compruebe el objeto de diagnóstico para obtener más información.NetworkError
: el usuario ya no está conectado a la red. Compruebe la conexión de red y vuelva a intentarlo.
Ejemplos
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/user-identity-token.yaml
Office.context.mailbox.getUserIdentityTokenAsync((result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error(`Token retrieval failed with message: ${result.error.message}`)
return;
}
console.log(result.value);
});
makeEwsRequestAsync(data, callback, userContext)
Realiza una solicitud asincrónica a un servicio de Exchange Web Services (EWS) en el servidor exchange que hospeda el buzón del usuario.
El método makeEwsRequestAsync
envía una solicitud de EWS en nombre del complemento a Exchange.
makeEwsRequestAsync(data: any, callback: (asyncResult: Office.AsyncResult<string>) => void, userContext?: any): void;
Parámetros
- data
-
any
La solicitud de EWS.
- callback
-
(asyncResult: Office.AsyncResult<string>) => void
Cuando se completa el método, se llama a la función pasada en el callback
parámetro con un único parámetro, asyncResult
, que es un Office.AsyncResult
objeto . La respuesta XML de la solicitud EWS se proporciona como una cadena en la asyncResult.value
propiedad . En Outlook en la Web, en Windows (nuevo y clásico (a partir de la versión 2303, compilación 16225.10000)) y en Mac (a partir de la versión 16.73 (23042601)), si la respuesta supera los 5 MB de tamaño, se devuelve un mensaje de error en la asyncResult.error
propiedad . En versiones anteriores de Outlook en Windows (clásico) y en Mac, se devuelve un mensaje de error si la respuesta supera el tamaño de 1 MB.
- userContext
-
any
Opcional. Cualquier dato de estado que se pasa al método asincrónico.
Devoluciones
void
Comentarios
[ Conjunto de API: Buzón 1.1 ]
Nivel mínimo de permiso: buzón de lectura y escritura
Modo de Outlook aplicable: Compose o lectura
Importante:
En octubre de 2024, los tokens heredados de identidad de usuario y devolución de llamada de Exchange se desactivarán de forma predeterminada para todos los inquilinos de Exchange Online. Esto forma parte de la Iniciativa de futuro seguro de Microsoft, que proporciona a las organizaciones las herramientas necesarias para responder al panorama actual de amenazas. Los tokens de identidad de usuario de Exchange seguirán funcionando para Exchange local. La autenticación de aplicaciones anidadas es el enfoque recomendado para los tokens en el futuro. Para obtener más información, consulte nuestra entrada de blog y página de preguntas más frecuentes.
Para habilitar el
makeEwsRequestAsync
método para realizar solicitudes de EWS, el administrador del servidor debe establecer enOAuthAuthentication
true
en el directorio EWS del servidor de acceso de cliente .El complemento debe tener el permiso de buzón de lectura y escritura para usar el
makeEwsRequestAsync
método . Para obtener información sobre cómo usar el permiso de buzón de lectura y escritura y las operaciones de EWS a las que puede llamar con elmakeEwsRequestAsync
método , vea Especificar permisos para el acceso del complemento de correo al buzón del usuario.Si el complemento necesita tener acceso a elementos asociados a la carpeta o su solicitud XML debe especificar la codificación UTF-8 (
\<?xml version="1.0" encoding="utf-8"?\>
), debe usar Microsoft Graph o las API REST para acceder al buzón del usuario en su lugar.Este método no se admite en Outlook en Android o en iOS. Para obtener más información sobre las API admitidas en Outlook mobile, vea API de JavaScript de Outlook compatibles con Outlook en dispositivos móviles.
Este método no se admite cuando el complemento se carga en un buzón de Gmail.
Cuando se usa el
makeEwsRequestAsync
método en complementos que se ejecutan en versiones de Outlook anteriores a la versión 15.0.4535.1004, debe establecer el valor de codificación en ISO-8859-1 (<?xml version="1.0" encoding="iso-8859-1"?>
). Para determinar la versión de un cliente de Outlook, use lamailbox.diagnostics.hostVersion
propiedad . No es necesario establecer el valor de codificación cuando el complemento se ejecuta en Outlook en la Web o nuevo Outlook en Windows. Para determinar el cliente de Outlook en el que se ejecuta el complemento, use lamailbox.diagnostics.hostName
propiedad .
Ejemplos
function getSubjectRequest(id) {
// Return a GetItem operation request for the subject of the specified item.
const request =
'<?xml version="1.0" encoding="utf-8"?>' +
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
' xmlns:xsd="http://www.w3.org/2001/XMLSchema"' +
' xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
' xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">' +
' <soap:Header>' +
' <RequestServerVersion Version="Exchange2016" xmlns="http://schemas.microsoft.com/exchange/services/2006/types" soap:mustUnderstand="0" />' +
' </soap:Header>' +
' <soap:Body>' +
' <GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">' +
' <ItemShape>' +
' <t:BaseShape>IdOnly</t:BaseShape>' +
' <t:AdditionalProperties>' +
' <t:FieldURI FieldURI="item:Subject"/>' +
' </t:AdditionalProperties>' +
' </ItemShape>' +
' <ItemIds><t:ItemId Id="' + id + '"/></ItemIds>' +
' </GetItem>' +
' </soap:Body>' +
'</soap:Envelope>';
return request;
}
function sendRequest() {
// Create a local variable that contains the mailbox.
Office.context.mailbox.makeEwsRequestAsync(
getSubjectRequest(mailbox.item.itemId), callback);
}
function callback(asyncResult) {
const result = asyncResult.value;
const context = asyncResult.asyncContext;
// Process the returned response here.
}
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/outlook/85-tokens-and-service-calls/get-icaluid-as-attendee.yaml
const ewsId = Office.context.mailbox.item.itemId;
const request = `<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header><t:RequestServerVersion Version="Exchange2013" /></soap:Header>
<soap:Body>
<m:GetItem>
<m:ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
</m:ItemShape >
<m:ItemIds>
<t:ItemId Id="${ewsId}" />
</m:ItemIds>
</m:GetItem>
</soap:Body>
</soap:Envelope>`;
Office.context.mailbox.makeEwsRequestAsync(request, (result) => {
if (result.status === Office.AsyncResultStatus.Failed) {
console.error(result.error.message);
return;
}
console.log(getUID(result.value));
});
...
const request = '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
' <soap:Header><t:RequestServerVersion Version="Exchange2010" /></soap:Header>'+
' <soap:Body>'+
' <m:CreateItem MessageDisposition="SendAndSaveCopy">'+
' <m:SavedItemFolderId><t:DistinguishedFolderId Id="sentitems" /></m:SavedItemFolderId>'+
' <m:Items>'+
' <t:Message>'+
' <t:Subject>Hello, Outlook!</t:Subject>'+
' <t:Body BodyType="HTML">This message was sent from a ScriptLab code sample, used from ' + Office.context.mailbox.diagnostics.hostName + ', version ' + Office.context.mailbox.diagnostics.hostVersion + '!</t:Body>'+
' <t:ToRecipients>'+
' <t:Mailbox><t:EmailAddress>' + Office.context.mailbox.userProfile.emailAddress + '</t:EmailAddress></t:Mailbox>'+
' </t:ToRecipients>'+
' </t:Message>'+
' </m:Items>'+
' </m:CreateItem>'+
' </soap:Body>'+
'</soap:Envelope>';
Office.context.mailbox.makeEwsRequestAsync(request, (result) => {
console.log(result);
});