Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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
.net 使用Process.Start在默认电子邮件客户端中创建电子邮件_.net_Vb.net_Winforms_Email_Mapi - Fatal编程技术网

.net 使用Process.Start在默认电子邮件客户端中创建电子邮件

.net 使用Process.Start在默认电子邮件客户端中创建电子邮件,.net,vb.net,winforms,email,mapi,.net,Vb.net,Winforms,Email,Mapi,我有一个小型办公应用程序(VB.Net),它根据许多业务规则管理个人数据库。用户必须能够从该数据库中选择个人来接收电子邮件。用户希望在其默认电子邮件客户端中查看关于、抄送和/或密件抄送项目的选定电子邮件列表。然后用户将提供主题和电子邮件正文,然后发送。不需要以编程方式处理附件或自动发送电子邮件。应用程序只需打开默认的电子邮件应用程序并填充地址 此功能目前作为MS Access应用程序实现,该应用程序使用DoCmd.SendObject方法,可以将数百封电子邮件的列表毫无困难地传递给默认的电子邮件

我有一个小型办公应用程序(VB.Net),它根据许多业务规则管理个人数据库。用户必须能够从该数据库中选择个人来接收电子邮件。用户希望在其默认电子邮件客户端中查看关于、抄送和/或密件抄送项目的选定电子邮件列表。然后用户将提供主题和电子邮件正文,然后发送。不需要以编程方式处理附件或自动发送电子邮件。应用程序只需打开默认的电子邮件应用程序并填充地址

此功能目前作为MS Access应用程序实现,该应用程序使用DoCmd.SendObject方法,可以将数百封电子邮件的列表毫无困难地传递给默认的电子邮件客户端

我使用了用StringBuilder构造的MailToURI来指定收件人、抄送和密件抄送,然后使用System.Diagnostics.Process.Start来打开默认的电子邮件客户端。在mailto URI中的电子邮件数量增加之前,这种方法非常有效。通过Process.Start方法可以传递的字符数似乎有限制

我试图确定还有哪些其他选择,但我只看到:

  • System.Web.Mail:不可取,因为用户不会也无法提供SMTP配置

  • MAPI:这似乎是不赞成的


显然,有一种方法可以同时传递多个地址,因为MS Access完成了这一过程。如何做到这一点?

尝试System.Web.Mail,但不是让用户输入值,而是在其中输入一些预设值


使用此方法的一个更理想的方法是使用一个定期更新预设的服务器。您的应用程序可以获取该列表并选择适当的列表

把你的用户列表分成几个部分并发送几封电子邮件怎么样?