我说我的兄弟姐妹们啊,快来帮帮忙啊。我想要得效果就像 用mailto:[email protected]? ,可以直接弹出outlook 发信窗口。但是必须能自动添加一个附件。
有这方面经验或消息的大哥大姐们,快来拯救拯救小弟我吧!!!!!!!!!!!!

解决方案 »

  1.   

    这个问题我可是花了很长时间解决了.
    可以支持Outlook Express 5.0/6.0和MS Outlook 2000(这个可是有一点难度的哦,不信你试试就知)
    好象对MS Outlook 2003支持就不行了,我没有再研究了.
    以下是我用VB写成的代码,只要修改一下就可支持C#(应该很简单的)    On Error GoTo err_flag    MAPIS1.NewSession = True
        MAPIS1.LogonUI = False
        MAPIS1.DownLoadMail = False
        
        If Right(App.Path, 1) <> "\" Then
            m_path = App.Path & "\"
        Else
            m_path = App.Path
        End If
        
        m_FileName = "test.txt"
        m_file = m_path & m_FileName
        
        MAPIS1.SignOn    MAPIM1.SessionID = MAPIS1.SessionID
        MAPIM1.Compose    MAPIM1.AddressResolveUI = True
        MAPIM1.AttachmentIndex = 0    MAPIM1.AttachmentPathName = m_file
        MAPIM1.AttachmentName = m_FileName
        
        MAPIM1.MsgSubject = "The Title "
        MAPIM1.MsgNoteText = " "
        
        MAPIM1.Send True    MAPIS1.SignOff
        
        Exit Sub
        
    err_flag:
        If MAPIS1.SessionID > 0 Then
            MAPIS1.SignOff
        End If
      

  2.   

    要用到MS的Microsoft MAPI Control 6.0
    MAPIM1 与 MAPIS1 是它的两个控件名
      

  3.   

    用API——Mapi.dll,
    直接调,网上很多资料的,查一下!
      

  4.   

    To : bluest(最深的蓝) . 大哥/大姐,请问像这样能不能把那个发信的窗口弹出来啊。我不只是光直接发信。 谢谢。
    谢谢大家的回应。
      

  5.   

    To : bluest(最深的蓝) . 请问,如何获得 MAPIS1 和 MAPIM1 . 我把Microsoft MAPI Control 6.0
    加载进来后,有了一个 MAMAPI 的 namespace , 里面有很多接口,但MAPIS1 和 MAPIM1 是什么我就无从得知了啊。请指教。谢谢!!!!!!
      

  6.   

    To:snow1257() 当然是那个发信的窗口啊.
    要下班了,我晚上用C#做一个明天再发给你们吧.
      

  7.   

    要用到的控件是MSMAPI32.ocx,在你的电脑内搜一搜就会发现有的.
    (在VS.net项目中添加进这个控件,这个不用我说的了吧)private void btnMail_Click(object sender, System.EventArgs e)
    {
    MAPIS1.NewSession=true;
    MAPIS1.LogonUI =false;
    MAPIS1.DownLoadMail =false; string m_path;
    string m_file_name;
    string m_file; m_path="F:\\MailTest\\"; m_file_name = "test.txt";
    m_file = m_path + m_file_name;
        
    MAPIS1.SignOn(); MAPIM1.SessionID = MAPIS1.SessionID;
    MAPIM1.Compose(); MAPIM1.AddressResolveUI=true;
    MAPIM1.AttachmentIndex = 0;

    MAPIM1.AttachmentPathName = m_file;
    MAPIM1.AttachmentName = m_file_name;
        
    MAPIM1.MsgSubject = "The Title ";
    MAPIM1.MsgNoteText = " ";
        
    MAPIM1.Send(true); MAPIS1.SignOff();}
      

  8.   

    楼上麻烦你把所有代码贴出来好吗?还有,在添加MSMAPI32.ocx时会加进两个控件:Microsoft MAPI Message Control,Version 6.0 和 Microsoft MAPI Session Control,Version 6.0 。在设计页面应该拖进哪个控件?在.cs文件中又应该怎样申明控件呢?
      

  9.   

    请发到我邮箱吧:[email protected]
      

  10.   

    大哥,我对你的敬仰犹如滔滔江水连绵不绝,又如黄河泛滥一发不可收拾。^0^不过,为什么它发信后不是立刻发出,而是放在缓存里等用户打开outlook 发信时再发出呢?
    有没有能立刻发出信的办法啊!!!!等待中。。
      

  11.   

    晕,大哥,我突然发现如果没安装office 2000/2003 outlook , 光是有windows自带的
    outlook Express . 就不能用这种方法,会报错的。 怎么办啊?
      

  12.   

    不是不是,现在又可以了, 抱歉抱歉啊。 不过,大哥, 若安装的是office 2003 outlook, 点击send后还不是立刻发信, 等用户把outlook打开后再发信时才发出去。 请指教
      

  13.   

    To snow1257():
    是否立即发出邮件,与这个控件没有关系.与你的outlook的选项设置有关.
    看一看:Outlook--工具--选项--发送--立即发送邮件
    在目前情况下好象outlook 2003发信时是不行.(从理论上说应该没问题才对)
      

  14.   

    收到, 那样我就告诉用户别装 office2003 outlook, 有问题 assign 给微软吧。-_-b~感谢感谢 bluest(最深的蓝) !!!