如何使用Lotus C#(.Net)打开新邮件

时间:2019-02-11 10:03:59

标签: c# .net email lotus

我目前正在用C#开发一个小型应用程序。 Net允许执行不同的任务,但是在我的任务之一中,我必须从Lotus打开一个新的默认邮件。但是,我找不到关于它的大量文档,所以我有点迷茫,这就是为什么我在您的手中:/ 因此,我只需要能够使用新的默认电子邮件打开Lotus。 在此先感谢;)

2 个答案:

答案 0 :(得分:0)

我建议您使用Selenium Web驱动程序访问其网站,并自动创建一个电子邮件帐户。

操作应用程序本身很复杂,您可以使用.NET Windows Input Simulator Nugat程序包来模拟用户对应用程序的输入或使用Windows API直接写入内存。

我认为Lotus没有受支持的方式来执行此操作。

但是,如果您可以使用Gmail,则可以使用Gmail API https://developers.google.com/gmail/api/guides/ 使用.NET httpClient与之交互。 并创建一个Gmail帐户 https://developers.google.com/admin-sdk/directory/v1/guides/manage-users

答案 1 :(得分:0)

        public void ComposeMemo(String sendto, String subject, String body)
    {
        //BLOC1 instantiate a Notes session and workspace
        Type NotesSession = Type.GetTypeFromProgID("Notes.NotesSession");
         Type NotesUIWorkspace = Type.GetTypeFromProgID("Notes.NotesUIWorkspace");
         Object sess = Activator.CreateInstance(NotesSession);
         Object ws = Activator.CreateInstance(NotesUIWorkspace);

        //BLOC2 open current user's mail file
        String mailServer = (String)NotesSession.InvokeMember("GetEnvironmentString", BindingFlags.InvokeMethod, null, sess, new Object[] { "MailServer", true });
        String mailFile = (String)NotesSession.InvokeMember("GetEnvironmentString", BindingFlags.InvokeMethod, null, sess, new Object[] { "MailFile", true });
        NotesUIWorkspace.InvokeMember("OpenDatabase", BindingFlags.InvokeMethod, null, ws, new Object[] { mailServer, mailFile });
        Object uidb = NotesUIWorkspace.InvokeMember("GetCurrentDatabase", BindingFlags.InvokeMethod, null, ws, null);
        Object db = NotesUIWorkspace.InvokeMember("Database", BindingFlags.GetProperty, null, uidb, null);
        Type NotesDatabase = db.GetType();

        //BLOC3 compose a new memo
        Object uidoc = NotesUIWorkspace.InvokeMember("ComposeDocument", BindingFlags.InvokeMethod, null, ws, new Object[] { mailServer, mailFile, "Memo", 0, 0, true });
        Type NotesUIDocument = uidoc.GetType();
        NotesUIDocument.InvokeMember("FieldSetText", BindingFlags.InvokeMethod, null, uidoc, new Object[] { "EnterSendTo", sendto });
        NotesUIDocument.InvokeMember("FieldSetText", BindingFlags.InvokeMethod, null, uidoc, new Object[] { "Subject", subject });
        NotesUIDocument.InvokeMember("FieldSetText", BindingFlags.InvokeMethod, null, uidoc, new Object[] { "Body", body });

        //BLOC4 bring the Notes window to the front
        String windowTitle = (String)NotesUIDocument.InvokeMember("WindowTitle", BindingFlags.GetProperty, null, uidoc, null);
        Interaction.AppActivate(windowTitle);
    }

BLOC1执行,它打开了应用程序,但是从BLOC2中,该应用程序不再响应,但是我不知道为什么,在BLOC4中,更多的单词是Interaction无法识别