×

Loading...
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务
Ad by
  • 推荐 OXIO 加拿大高速网络,最低月费仅$40. 使用推荐码 RCR37MB 可获得一个月的免费服务

得用 LoaduserProfile

以前得手工调用kernal.dll, user.dll,

.NET现在提供 System.Diagnostics.ProcessStartInfo.LoadUserProfile 可以直接作这件事,

但是要注意,loaduserprofile本身很耗时,要小心使用。比如你要put 到service里面,只call一次就可以了。

连接里面有例子。
Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术讨论 / 请教一个 C# 读email 的问题
    我用如下代码读email,当outlook 没打开时运行正常,程序会登录到 outlook profile
    :Testinvoices 读写邮件,

    但当我用别的帐号 (profile)打开outlook, 然后在运行如下代码就不成功,程序会自动使用
    当前打开的帐号,而不是读Testinvoices 帐号的邮件,请问有什么办法可以解决吗,谢谢。

    Outlook.Application oOutlook;
    Outlook.NameSpace oNs;

    oOutlook = new Outlook.Application();

    oNs = oOutlook.GetNamespace("MAPI");
    oNs.Logon("testinvoices", "xxxxxx", false, true);
    • 得用 LoaduserProfile
      以前得手工调用kernal.dll, user.dll,

      .NET现在提供 System.Diagnostics.ProcessStartInfo.LoadUserProfile 可以直接作这件事,

      但是要注意,loaduserprofile本身很耗时,要小心使用。比如你要put 到service里面,只call一次就可以了。

      连接里面有例子。
      • 谢谢给我提供个思路,但感觉loaduserprofile用起来挺复杂的,还在学习中, 另外问一下,C# 底下读outlook邮件还有什么其他简单的方法吗?
        • 如果你不是parse exchange server 的 private protocol的话就好办多了
          如果是非exchange server的邮件客户端,并且确认是pop3/smtp的话,就很容易,smtp, pop3, imap都是internet 标准,你根本不需要outlook去parse,直接找open source的库就可以了。pop3/imap没有.net 原生库,但是open source的不少。smtp则可以.net 原生支持,不用购买第三方。


          exchange server受发邮件,支持 4种主要protocols:
          (1) 自己的private one
          (2) pop3/smtp
          (3) IMAP
          (4)其他定制protocol.

          难就难在(1),大部分公司企业内部邮件系统如果走exchang的话,就用(1),那么你就得买第三方的libary或者走outlook automation.(1) 虽然不是标准,但是exchange里面很多特有的feature,比如form,工作流 calender, sharepoint集成等等,都得用(1)。

          所以,如果你公司内部exchang已经设置为pop3 或者 imap那就恭喜,不用outlook office automation 的方案了,否则没什么更好的办法。
    • 这个是EXCHANGE定的, 用户登录后, 自动进入他自己的目录, 读其中的邮件. 没办法用程序帐户读用户邮件. 考虑IMPERSONATE成用户自己credential吧.