【问题标题】:using mailto to send email with an attachment使用 mailto 发送带有附件的电子邮件
【发布时间】:2011-03-08 14:08:36
【问题描述】:

如何使用 Outlook 2010 发送带有附件(本地文件或 Intranet 中的文件)的电子邮件?

<a href="mailto:a@gmail.com?subject=my report&body=see attachment&attachment=c:\myfolder\myfile.txt">

好像没用。

【问题讨论】:

    标签: html


    【解决方案1】:

    不,这根本不可能。 mailto: 协议中没有对此的规定,如果可能的话,这将是一个巨大的安全漏洞。

    发送文件但让客户发送我能想到的电子邮件的最佳方法是:

    • 让用户选择一个文件
    • 将文件上传到服务器
    • 上传后让服务器返回一个随机文件名
    • 构建一个mailto: 链接,其中包含指向消息正文中已上传文件的 URL

    【讨论】:

    【解决方案2】:

    这在“mailto”功能中是不可能的。

    请使用服务器端编码(C#)。确保打开与管理权限。

    Microsoft.Office.Interop.Outlook.Application oApp = new Microsoft.Office.Interop.Outlook.Application();
    Microsoft.Office.Interop.Outlook.MailItem oMsg = (Microsoft.Office.Interop.Outlook.MailItem)oApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);
    
    oMsg.Subject = "emailSubject";
    oMsg.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatHTML;
    oMsg.BCC = "emailBcc";
    oMsg.To = "emailRecipient";
    
    string body = "emailMessage";
    
    oMsg.HTMLBody = "body";              
    oMsg.Attachments.Add(Convert.ToString(@"/my_location_virtual_path/myfile.txt"), Microsoft.Office.Interop.Outlook.OlAttachmentType.olByValue, Type.Missing, Type.Missing);
    
    oMsg.Display(false); //In order to displ
    

    【讨论】:

    • 我尝试过使用 mailto 功能,但它不可能,所以我尝试了上面的代码来实现。
    • 不是problematic 在服务器上使用 Microsoft Office 自动化吗?
    【解决方案3】:

    如果你在桌面上使用c#,你可以使用SimpleMapi。这样它将使用默认邮件客户端发送,并且用户可以选择在发送前查看邮件,就像mailto:

    要使用它,请添加 Simple-MAPI.NET 包(它是 13Kb),然后运行:

    var mapi = new SimpleMapi();
    mapi.AddRecipient(null, address, false);
    mapi.Attach(path);
    //mapi.Logon(ParentForm.Handle);    //not really necessary
    mapi.Send(subject, body, true);
    

    【讨论】:

    • 问题被标记为 HTML。据我所知,不能从网页使用 Mapi。看到这个链接stackoverflow.com/questions/12234916/…
    • @DovMiller 是的,它只适用于桌面应用程序。如果您确实需要从 Web 应用程序打开 Outlook,您可以尝试 stackoverflow.com/questions/35229240/… 。但是,如果您只需要发送一封电子邮件,那么您发送的链接就有更好的解决方案。
    【解决方案4】:

    这个呢

    <FORM METHOD="post" ACTION="mailto:jburns@htmlgoodies.com" ENCTYPE="multipart/form-data">
    Attachment: <INPUT TYPE="file" NAME="attachedfile" MAXLENGTH=50 ALLOW="text/*" >
     <input type="submit" name="submit" id="submit" value="Email"/>
    </FORM>
    

    【讨论】:

    • 在 jsfiddle 上试用过...它只是打开一个电子邮件对话框并用attachedfile=filename.ext&amp;submit=Email 预填充正文。它不附加任何数据。
    • 有效,引用的文件在客户端附上文件
    猜你喜欢
    • 2022-12-17
    • 2015-09-09
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    相关资源
    最近更新 更多