Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:打开默认邮件客户端_Java_Email - Fatal编程技术网

Java:打开默认邮件客户端

Java:打开默认邮件客户端,java,email,Java,Email,我有一个软件,定期解析我的邮件收件箱。程序的功能取决于运行的默认邮件程序 如何从java中启动默认邮件程序 我知道您可以通过使用桌面类来实现这一点: Desktop.getDesktop().mail() 但是除了启动默认的邮件客户端之外,它还会打开一个我不想要的新电子邮件窗口。 如何在不打开“撰写新电子邮件”窗口的情况下打开默认邮件客户端 < >编辑:我现在试图使用这个代码片段来提取信息,但因为这个代码不编译(像大多数微软代码片段,当你不是C++开发人员时,它非常糟糕,只需要一些代码),因

我有一个软件,定期解析我的邮件收件箱。程序的功能取决于运行的默认邮件程序

如何从java中启动默认邮件程序

我知道您可以通过使用
桌面
类来实现这一点:

Desktop.getDesktop().mail()
但是除了启动默认的邮件客户端之外,它还会打开一个我不想要的新电子邮件窗口。
如何在不打开“撰写新电子邮件”窗口的情况下打开默认邮件客户端


< >编辑:我现在试图使用这个代码片段来提取信息,但因为这个代码不编译(像大多数微软代码片段,当你不是C++开发人员时,它非常糟糕,只需要一些代码),因为它缺少对<代码>和LPrPrimeLtabe<代码>的引用。缺少的代码会是什么样子?

以下是MSDN示例的外观:

#define UNICODE
#define _UNICODE
#define STRICT

#include <windows.h>
#include <mapix.h>

#include <iostream>

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinstPrev,
                   LPSTR lpCmdLine, int nShowCmd) {
    // Get a IProfAdmin Interface.
    LPPROFADMIN lpProfAdmin;
    HRESULT hr = MAPIAdminProfiles(0, &lpProfAdmin);

    // Get the Table of Profiles
    LPMAPITABLE lpProfileTable;
    hr = lpProfAdmin->GetProfileTable(0, &lpProfileTable);

    // Build a restriction where PR_DEFAULT_PROFILE = TRUE
    SPropValue spvDefaultProfile;
    spvDefaultProfile.ulPropTag = PR_DEFAULT_PROFILE;
    spvDefaultProfile.Value.b = TRUE;

    SRestriction sres;
    sres.rt = RES_PROPERTY;
    sres.res.resProperty.relop = RELOP_EQ;
    sres.res.resProperty.ulPropTag = PR_DEFAULT_PROFILE;
    sres.res.resProperty.lpProp = &spvDefaultProfile;

    hr = lpProfileTable->Restrict(&sres, TBL_BATCH);
    hr = lpProfileTable->FindRow(&sres, BOOKMARK_BEGINNING, 0);

    LPSRowSet pRow = NULL;
    hr = lpProfileTable->QueryRows(1, 0, &pRow);
     // We have a match
    if (SUCCEEDED(hr)) {
        LPSTR lpDisplayName = pRow->aRow[0].lpProps[0].Value.lpszA;
        std::cout << lpDisplayName;
    }
}
#定义UNICODE
#定义UNICODE
#定义严格
#包括
#包括
#包括
int WINAPI WinMain(HINSTANCE hinst、HINSTANCE hinstPrev、,
LPSTR lpCmdLine,int nShowCmd){
//获取IProfAdmin接口。
LPPROFADMIN LPPROFADMIN;
HRESULT hr=MAPIAdminProfiles(0,&lpProfAdmin);
//获取配置文件表
LPMAPITABLE lpProfileTable;
hr=lpProfAdmin->GetProfileTable(0,&lpProfileTable);
//建立一个PR_DEFAULT_PROFILE=TRUE的限制
SPropValue spvDefaultProfile;
spvDefaultProfile.ulPropTag=PR_DEFAULT_PROFILE;
spvDefaultProfile.Value.b=TRUE;
限制;
sres.rt=RES_属性;
sres.res.resProperty.relop=relop_EQ;
sres.res.resProperty.ulPropTag=PR_DEFAULT_PROFILE;
sres.res.resProperty.lpProp=&spvDefaultProfile;
hr=lpProfileTable->Restrict(&sres,待处理批次);
hr=lpProfileTable->FindRow(&sres,书签\u开头,0);
LPSRowSet pRow=NULL;
hr=lpProfileTable->QueryRows(1、0和船头);
//我们有一场比赛
如果(成功(hr)){
LPSTR lpDisplayName=pRow->aRow[0]。lpProps[0]。Value.lpszA;

std::cout以下是MSDN样本的外观:

#define UNICODE
#define _UNICODE
#define STRICT

#include <windows.h>
#include <mapix.h>

#include <iostream>

int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinstPrev,
                   LPSTR lpCmdLine, int nShowCmd) {
    // Get a IProfAdmin Interface.
    LPPROFADMIN lpProfAdmin;
    HRESULT hr = MAPIAdminProfiles(0, &lpProfAdmin);

    // Get the Table of Profiles
    LPMAPITABLE lpProfileTable;
    hr = lpProfAdmin->GetProfileTable(0, &lpProfileTable);

    // Build a restriction where PR_DEFAULT_PROFILE = TRUE
    SPropValue spvDefaultProfile;
    spvDefaultProfile.ulPropTag = PR_DEFAULT_PROFILE;
    spvDefaultProfile.Value.b = TRUE;

    SRestriction sres;
    sres.rt = RES_PROPERTY;
    sres.res.resProperty.relop = RELOP_EQ;
    sres.res.resProperty.ulPropTag = PR_DEFAULT_PROFILE;
    sres.res.resProperty.lpProp = &spvDefaultProfile;

    hr = lpProfileTable->Restrict(&sres, TBL_BATCH);
    hr = lpProfileTable->FindRow(&sres, BOOKMARK_BEGINNING, 0);

    LPSRowSet pRow = NULL;
    hr = lpProfileTable->QueryRows(1, 0, &pRow);
     // We have a match
    if (SUCCEEDED(hr)) {
        LPSTR lpDisplayName = pRow->aRow[0].lpProps[0].Value.lpszA;
        std::cout << lpDisplayName;
    }
}
#定义UNICODE
#定义UNICODE
#定义严格
#包括
#包括
#包括
int WINAPI WinMain(HINSTANCE hinst、HINSTANCE hinstPrev、,
LPSTR lpCmdLine,int nShowCmd){
//获取IProfAdmin接口。
LPPROFADMIN LPPROFADMIN;
HRESULT hr=MAPIAdminProfiles(0,&lpProfAdmin);
//获取配置文件表
LPMAPITABLE lpProfileTable;
hr=lpProfAdmin->GetProfileTable(0,&lpProfileTable);
//建立一个PR_DEFAULT_PROFILE=TRUE的限制
SPropValue spvDefaultProfile;
spvDefaultProfile.ulPropTag=PR_DEFAULT_PROFILE;
spvDefaultProfile.Value.b=TRUE;
限制;
sres.rt=RES_属性;
sres.res.resProperty.relop=relop_EQ;
sres.res.resProperty.ulPropTag=PR_DEFAULT_PROFILE;
sres.res.resProperty.lpProp=&spvDefaultProfile;
hr=lpProfileTable->Restrict(&sres,待处理批次);
hr=lpProfileTable->FindRow(&sres,书签\u开头,0);
LPSRowSet pRow=NULL;
hr=lpProfileTable->QueryRows(1、0和船头);
//我们有一场比赛
如果(成功(hr)){
LPSTR lpDisplayName=pRow->aRow[0]。lpProps[0]。Value.lpszA;

std::我真的不想使用JNI,但我明白你的意思。我真的不想使用JNI,但我明白你的意思。非常感谢!lpDisplayName的值是“Default”。当我将其解析为MAPILogonEx函数()的profilename时,我得到一个错误,即该配置文件不存在。我以前已经尝试过用字符串提供该函数“Default”不起作用。我从发布的代码中跳到了要解析的正确值。我该怎么做?请看我的原始问题:不幸的是,我没有使用此API的任何经验,我无法让它运行以测试它,对不起…非常感谢!lpDisplayName的值是“Default”“。当我将其作为profilename解析为MAPILogonEx函数()时,我得到一个错误,即该配置文件不存在。我以前已尝试使用字符串“Default”提供该函数”但它不起作用。我跳了起来,从发布的代码中获取正确的值进行解析。我该怎么做?请看我最初的问题:不幸的是,我没有使用此API的任何经验,我无法让它运行以测试它,抱歉。。。