Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Servidor de correo saliente

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Servidor de correo saliente Responder citando

Estaba repasando la contestación que me dio Leo en A vueltas con el registro de Windows porque con la configuración que tengo en mi máquina actual no me encuentra nada. ¿Puede ser porque el gestor de correo que uso sea Thunderbird en lugar de Outlook?

Lo digo porque al mirar el registro en HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts no aparece ninguna cuenta de las que gestiono (y son seis las que tengo en el gestor); en ese registro aparecen tres calves y cuatro carpetas. Las claves son: AssociatedID, PreConfigVer y PreConfigVerNTDS; las carpetas son: Active Directory GC, Bigfoot, VeriSign y WhoWhere.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)


Ultima edición por Angel el Sab 12 Feb, 2011 5:13 pm, editado 1 vez
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Angel escribió:
¿Puede ser porque el gestor de correo que uso sea Thunderbird en lugar de Outlook?

Thunderbird no guarda esos datos en el registro. Los guarda en la siguiente ruta:

    %APPDATA%\Thunderbird

Y en ella tienes que mirar en el archivo:

    profiles.ini

Ahí encontraras los diferentes perfiles y los directorios donde están, y una vez en el directorio al que señalan, encontraras todas las cuentas del perfil en el archivo de texto:

   prefs.js
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Leo.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Añado un pequeño ejemplo que espero que te sea útil como base:

- En este ejemplo se presupone que solo existe un perfil (el perfil por defecto), aunque en la práctica pueden haber varios y habría que comprobar cuál de ellos es el principal.

Simplemente añade el siguiente código en el OnClick de un botón por ejemplo para comprobar si te sirve (recuerda añadir las cabeceras que se especifican más abajo):
Código:
    // Añadimos las cabeceras:  #include<memory>  #include<IniFiles.hpp>

    // Función local (para contener todo el ejemplo en una función)
    // para leer los valores del archivo prefs.js
    struct LOCAL {
        LOCAL() : sl(new TStringList)
        {
            // Localizamos y cargamos el archivo de preferencias de Thunderbird
            String iniPath = getenv("APPDATA") + String("\\Thunderbird\\");
            std::auto_ptr<TIniFile> ini(new TIniFile(iniPath + "profiles.ini"));
            String profilePath = ini->ReadString("Profile0", "Path", "");
            String prefsFile = iniPath + profilePath + "\\prefs.js";
            sl->LoadFromFile(prefsFile);
        }

        String operator()(String pref, String var="")
        {
            if (!var.IsEmpty())
                pref = Format(pref.c_str(), ARRAYOFCONST((var)) );

            String value = "";
            for (int i = 0; i < sl->Count; ++i)
            {
                if (sl->Strings[i].Pos(pref))
                {
                    int ini = sl->Strings[i].Pos(", ") + 2;
                    int fin = sl->Strings[i].Pos(");") - ini;
                    value = sl->Strings[i].SubString(ini, fin).Trim();
                    break;
                }
            }

            return AnsiDequotedStr(value, '"');
            // Si usamos una versión anterior a la 6, cambiar la linea anterior por:
            // return value[1]=='"' ? value.SubString(2,value.Length()-2) : value;
        }

        std::auto_ptr<TStringList> sl;
    } ReadPref;

    // Localizamos la cuenta de correo predeterminada
    String account = ReadPref("mail.accountmanager.defaultaccount"),
           id = ReadPref("mail.account.%s.identities", account),
           smtp = ReadPref("mail.identity.%s.smtpServer", id);

    // Extraemos los datos de correo saliente de la cuenta predeterminada
    String hostname = ReadPref("mail.smtpserver.%s.hostname", smtp),
           port = ReadPref("mail.smtpserver.%s.port", smtp),
           username = ReadPref("mail.smtpserver.%s.username", smtp),
           auth_method = ReadPref("mail.smtpserver.%s.auth_method", smtp);

    // Los mostramos
    ShowMessage("hostname: " + hostname + "\nport: " + port
        + "\nauth_method: " + auth_method + "\nusername: " + username);

(Probado en las versiones: 1, 4, 6 y 2010)

Más información:
http://kb.mozillazine.org/Profiles.ini_file
http://kb.mozillazine.org/Prefs.js_file
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Gracias Leo. Ya había dado con la solución, pero tu código es más sencillo. La adaptaré.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.