繁体   English   中英

如何打开带有附件的默认电子邮件客户端

[英]How to open default email client with attachment

我正在处理我的项目的问题,当我单击按钮时,应该弹出一个默认的电子邮件客户端,如果有附件,它应该像这样自动附加到默认的电子邮件客户端。

在此处输入图片说明

我已经尝试了很多方法来做到这一点。 首先,我使用了MAPI,但是即使我已经在“控制面板”中进行了设置,MAPI也无法检测到我的默认电子邮件客户端,它显示了这两个消息框

在此处输入图片说明

在此处输入图片说明

我已经在互联网上搜索了这些错误,但没有明确或明确的答案。 HERE'S我在MAPI使用的代码。

我还使用mail:to协议来调用使用此代码行处理上述协议的默认电子邮件客户端。

Dim proc As System.Diagnostics.Process = New System.Diagnostics.Process()

            Dim filename = Convert.toChar(34) & "C:\USERS\JOSHUA~1.HER\DOWNLO~1\ASDPOR~1.PDF" & Convert.toChar(34)
            Debug.Writeline(filename)
            Dim asd As String = String.Format("mailto:someone@somewhere.com?subject=hello&body=love my body&Attach={0}", filename)
            proc.StartInfo.FileName = asd
            proc.Start()

但是,仍然没有运气。 我读到一个线程,认为mail:to不再处理附件,但是这一行代码打开了带有主体和主题的默认电子邮件客户端,但是没有附件。 关于filename变量,我已经尝试了每种路径格式,我读到我应该使用8.3路径格式。 但是仍然不起作用。

我使用的最后一种方法是按照答案扩展System.Net.MailMessage.MailMessage() 这在打开默认电子邮件客户端并将附件附加到邮件方面起作用,但这是不可编辑的,并且默认电子邮件客户端上没有发送按钮,因为这行代码仅生成.eml文件并将其打开。 我正在考虑解析eml文件,但我仍然不知道如何以新的消息形式通过编程方式打开默认电子邮件客户端。 这是照片

在此处输入图片说明

你们有任何想法如何做到这一点? 谢谢!

恐怕使用任何邮件客户端的通用方法都无法做到这一点。 但是,您可以使用System.Net.Mail.SmtpClient和一些简单的自定义UI轻松创建自己的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM