Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2023
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Enviar email desde la cuenta de correo electrónico predeterminada de OUTLOOK

Buenos días,
Desde mi aplicación envío emails utilizando el programa de correos de Outlook. El problema, es que si el usuario tiene varias cuentas de email, no soy capaz de enviarlo desde la cuenta de correo que tenga predeterminada el usuario en ese momento. Y aunque modifique la cuenta de correo predeterminada, el programa siempre envía los emails desde la misma cuenta.

¿Sabéis cómo puedo enviar los emails desde la cuenta de correo predeterminada que tenga el Outlook?
¿O alguna manera de saber qué cuenta predeterminada tiene especificada el Outlook, no sé si se guarda en el registro o en algún otro sitio? Porque si la supiera podría asignárselo de esta manera:

Código Delphi [-]
MailItem.SendUsingAccount:=Outlook.Session.Accounts.Item("CuentaOutlookPredetminada");

Muchas gracias.
Responder Con Cita
  #2  
Antiguo 09-02-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Prueba algo así:

Código Delphi [-]
uses
  ComObj, ActiveX, Variants;

procedure GetDefaultAccount;
var
  OutlookApp: OleVariant;
  Accounts: OleVariant;
  Account: OleVariant;
  i: Integer;
begin
  try
    OutlookApp := CreateOleObject('Outlook.Application');
    Accounts := OutlookApp.Session.Accounts;

    for i := 1 to Accounts.Count do
    begin
      Account := Accounts.Item(i);
      if Account.DisplayName = OutlookApp.Session.DefaultStore.DisplayName then
      begin
        ShowMessage('La cuenta predeterminada es: ' + Account.DisplayName);
        Break;
      end;
    end;
  except
    on E:Exception do
      ShowMessage(E.Message);
  end;
end;
Responder Con Cita
  #3  
Antiguo 09-02-2023
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Gracias por responder. Lo he probado, pero me lo sigue mandando desde la misma cuenta de siempre, ignorando la cuenta predeterminada de Outlook

Última edición por Casimiro Notevi fecha: 09-02-2023 a las 16:10:50.
Responder Con Cita
  #4  
Antiguo 09-02-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por APO Ver Mensaje
Gracias por responder. Lo he probado, pero me lo sigue mandando desde la misma cuenta de siempre, ignorando la cuenta predeterminada de Outlook
¿Pero esa función te devuelve la predeterminada?
Responder Con Cita
  #5  
Antiguo 09-02-2023
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Pero esa función te devuelve la predeterminada?
Me devuelve una cuenta, pero no es la predeterminada de Outlook.
Responder Con Cita
  #6  
Antiguo 09-02-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por APO Ver Mensaje
Me devuelve una cuenta, pero no es la predeterminada de Outlook.
Pregunta tonta: ¿seguro?
Responder Con Cita
  #7  
Antiguo 09-02-2023
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pregunta tonta: ¿seguro?
Sí sí. Tengo 2 cuentas configuradas en Outlook, y aunque cambie la predeterminada a una u otra, siempre me devuelve la misma. Intentaré aislar tu trozo de código, a ver si hay algo que hago, que haga que no cargue bien la predeterminada… no se
Responder Con Cita
  #8  
Antiguo 09-02-2023
Garada Garada is offline
Miembro
 
Registrado: jul 2004
Posts: 66
Poder: 20
Garada Va por buen camino
Tuve ese problema hace tiempo y si no recuerdo mal, la solución es crear el objeto MailItem desde la Bandeja de entrada de la cuenta predeterminada.

Te dejo un extracto quitando comprobaciones de errores u objetos nulos.

Código Delphi [-]
var
  OL: TOutlookApplication;
  Mail: MailItem;
  NS: NameSpace;
  OB: MAPIFolder;
begin
...

  OL := TOutlookApplication.Create(Application);
  OL.ConnectKind := ckRunningOrNew;
  OL.Connect;

  NS := OL.GetNamespace('MAPI');
  OB := NS.GetDefaultFolder(olFolderInbox);

//    showmessage(NS.CurrentUser.Name); //mail principal

  Mail := (OB.Items.Add(olMailItem) as MailItem);
...
Responder Con Cita
  #9  
Antiguo 10-02-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Lo has conseguido?
Responder Con Cita
  #10  
Antiguo 10-02-2023
APO APO is offline
Miembro
 
Registrado: feb 2008
Posts: 121
Poder: 17
APO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿Lo has conseguido?
No lo he conseguido, pero he encontrado una solución intermedia. Y es que el usuario especifique una cuenta por defecto por dónde quiere enviar las facturas. De esta manera, aunque tenga otra cuenta de Outlook en ese momento, la enviará desde la que haya especificado.

Y la asignó de la siguiente manera:

Código Delphi [-]
MailItem.SendUsingAccount:=Outlook.Session.Accounts.Item("CuentaOutlookPredeterminadaPorUsuario");

Gracias de todas formas!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Necesito enviar un correo electronico desde una app H.Sagas96 Desarrollo en Delphi para Android 7 13-06-2015 07:00:16
enviar correo electronico desde delphi morfeo21 Servers 3 05-05-2010 23:21:57
Enviar un correo electronico desde delphi 7 carlos gonzalez Varios 3 07-06-2008 18:04:29
Enviar correo electrónico desde delphi luisneria Internet 3 02-03-2007 18:07:27
Enviar email desde uns cuenta mia Descendents Internet 4 08-09-2006 03:30:50


La franja horaria es GMT +2. Ahora son las 13:25:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi