我有一个项目要求,我们需要将HTML格式的日志表附加到发送给用户的电子邮件. 我不希望日志表成为身体的一部分.我宁愿不使用htmltextwriter或stringBuilder,因为日志表非常复杂. 是否有另一种我没有提及的方法或可以使它更容易的工具? 注意:我已经与MailDefinition类合作并创建了一个模板,但是如果可能的话,我还没有找到一种将其作为附件的方法. 解决方案 由于您正在使用WebForms,我建议渲染部分看起来有点像这样: public static string GetRenderedHtml(this Control control) { StringBuilder sbHtml = new StringBuilder(); using (StringWriter stringWriter = new StringWriter(sbHtml)) using (HtmlTextWriter textWriter
以下是关于 email-attachments 的编程技术问答
当我尝试将MHTML文件添加为vbscript中的电子邮件的附件时,ContentMediaType ContentMediaType ContentMediaType被错误地设置为"message/rfc822"( rfc 822 ).据我了解,根据Microsoft,这是正确的,但是根据 rfc 2557 哪个指出应该是"multipart/related".这是一个问题,因为大多数(如果不是全部)邮件客户端将"message/rfc822"解释为电子邮件.由于文件扩展".mht"和".mhtml"不匹配电子邮件消息的任何有效的文件扩展名,因此邮件客户端将".msg",".eml"等的一个附加在文件名中.当用户打开附件时,它将作为电子邮件打开,并且由于MHTML文件和电子邮件消息的保存方式不同,因此无法正确显示. Sub SendEmail(FromAddress, ToAddress, Subject, Body, Attachment) Call Err.Clear
关于 in of insing 不安全的附件的大量信息,但我还没有找到一个在外观外观项目上解决我的查询的信息. 我正在运行一个脚本,该脚本正在发送大量的电子邮件,让我整个周末都想让它脱颖想要发送消息,因为它可能包含不安全的附件. 这是非常不一致的:大概一千封电子邮件引起了这一点,并且似乎与附件的扩展没有任何关系;仅是PDF,DOCX,RTF,XLSX,HTML或图像. 所以我正在渴望一种抑制消息的方法,或者在宏中构建某些东西以完全绕过它,但是我绝对不知道从哪里开始,因为(正如我所说的那样)所有搜索次数获取仅适用于传入的邮件项目. 帮助?! 谢谢! 解决方案 在Outlook中发送电子邮件有两个方面: Outlook安全提示.在此上下文中的"安全性"是指触发安全提示并阻止对某些功能的访问的所谓"对象模型保护",以防止恶意程序从Outlook Data收集电子邮件地址并使用Outlook来传播病毒和垃圾邮件.在 Outlook"对象模型守卫"安全问
以下代码从一个存储在一个文件夹中的 *.msg文件中提取附件. 我正在寻求从存储在文件夹中的许多子文件夹中的 *.msg文件中提取附件. 主文件夹的路径是: U:\ xxxxx \ xxxxx \ main文件夹 子文件夹的路径是: u:\ xxxxx \ xxxxx \ main文件夹\文件夹1 u:\ xxxxx \ xxxxx \ main文件夹\ folder2 u:\ xxxxx \ xxxxx \ main文件夹\ folder3 等. Sub SaveOlAttachments() Dim msg As Outlook.MailItem Dim att As Outlook.Attachment Dim strFilePath As String Dim strAttPath As String 'path for msgs strFilePath = "U:\XXXXX\XXXXX\Main Folder\" 'pat
我遇到了宏,这些宏检查是否在电子邮件中使用"附件"(或您想要的其他任何单词)时是否附加了任何项目,例如以下内容: Public Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) Dim vList As Variant Dim answer As Integer Dim i As Integer vList = Array("attached", "attachment") If Item.Attachments.Count = 0 Then For i = 0 To UBound(vList) If InStr(1, LCase(Item.Body), LCase(vList(i)), vbTextCompare) > 0 Then answer = MsgBox("T
仅将图像保存到文件夹,即.jpg .jpeg .gif .png 包括收到的日期 将所有保存的图像Filetypes重命名为" .jpg" 我大部分都放下了.它保存这样的文件:test.jpeg.jpg和test.jpg.jpg Public Sub saveAttachtoDisk(itm As Outlook.MailItem) Dim objAtt As Outlook.Attachment Dim saveFolder As String Dim dateFormat As String Dim strFileExtension As String saveFolder = "C:\emails\" dateFormat = Format(itm.ReceivedTime, "yyyy-mm-dd Hmm ") strFileExtension = ".jpg" For Each objAtt I
我在ThisOutlookSession中具有以下代码.只有第二个子将保存到文件夹中. (当我只有第一部分时,这很好.) 是否可以将两个文件来自不同域中的文件保存到自己的文件夹中? 我正在使用它将文件馈入Power BI进入并获取最新文件的文件夹. Private WithEvents Items As Outlook.Items Private Sub Application_Startup() Dim olApp As Outlook.Application Dim objNS As Outlook.NameSpace Set olApp = Outlook.Application Set objNS = olApp.GetNamespace("MAPI") Set Items = objNS.GetDefaultFolder(olFolderInbox).Items End Sub Private Sub
当我在220个项目的文件夹上运行以下代码时,如果sLoopThrough为"文件夹",则每秒输出34个excel行,如bTimeIt为true时通过excel列中的时间戳测量.当sLoopThrough为"表"时,输出跳至每秒165.为什么桌子循环更快五倍? 如果可以加快速度,我会更喜欢文件夹循环,因为它可以为我提供更多信息.例如,在以下代码中,文件夹循环给了我附件数,而表只能告诉我是否有任何附件. Sub pOutlookEmailPropertiesToExcel(sExcelPath As String, sExcelFile As String, _ sExcelSheet As String, bNewFile As Boolean, _ oOutlookFolder As MAPIFolder, sLoopThru As St
我想在电子邮件草稿中合并附件(由另一个程序自动创建),因此有一封电子邮件可能具有多个附件. 我有三个数组: 附件arrAtt()(来自原始草稿电子邮件) 原始草稿的相应电子邮件地址arrAdd() 唯一的电子邮件地址arrUnqAdd() 我正在为每个唯一的电子邮件地址创建一个新电子邮件. 我的挑战是添加阵列中的附件arrAtt(). 我得到的.Attachments.Add是为了使用文件路径. 有没有办法添加arrAtt()的附件?即没有保存附件以创建文件路径? Dim OpenItem As Object Dim arrDraft() As MailItem 'all drafts Dim arrAtt() As Attachment 'all attachments Dim arrAdd() As String 'all email addresses Dim arrUnqAdd() As String 'unique email ad
编辑 Sub CreateEmail(Subject As String, Body As String, ToSend As String, CCs As String, FilePathtoAdd As String) Dim OlApp As Object Dim OlMail As MailItem Dim ToRecipient As Variant Dim CcRecipient As Variant Dim Attachments() As String Dim i As Integer Set OlApp = Application Set OlMail = OlApp.CreateItem(olMailItem) OlMail.Recipients.Add ToSend OlMail.Subject = Subject OlMail.Body = Body OlMail.SentOnBehalfOfName = "mailbox
标题中所述.我在另一个用户的帮助下管理了一个脚本,该脚本用一个或多个附件创建电子邮件.它是这样的. 首先,脚本通过所有客户名称运行并选择唯一值.在那之后,它逐一过滤.如果客户端1有一行,则意味着Outlook电子邮件只有一个附件;如果有2行,则有两个附件,依此类推. 我目前的问题是VBA正在乘以附件.如果客户端1有三行,则将添加三次附件,总共9个;目标是每排添加一个附件. 您可以发现问题吗? Sub Filtering() Application.ScreenUpdating = False Dim ws As Worksheet Dim lrow_Critera_Data_Range As Long, lcol_Critera_Data_Range As Long Set ws = Excel.ThisWorkbook.Worksheets("Hermes") If Sheets("Her
我有很多电子邮件来自我以前的电子邮件提供商,这些电子邮件已转发给我的Outlook 2010 Inbox文件夹Received. 我遇到的问题是,原始电子邮件是作为附件发送的,而不是作为前进!所以我想做的是: 在Received文件夹中打开邮件,并运行将 的VBA代码 从Received文件夹中的转发邮件中提取附件,然后将附件保存到Forwarded文件夹 在Received文件夹中删除转发邮件. 我对Outlook VBA代码不了解,所以我什至没有起点! 任何屁股都会非常感谢! 解决方案 我使用 Outlook附件REMOVER REMOVER ADD-IND-IN 删除附件并保存附件它们在文件系统中.我主要使用它来减少服务器上的个人资料需求. 一件很棒的事情是,该工具在邮件中添加了指向原始附件的链接.因此,您仍然可以打开附件的文件,但是然后从文件系统打开. 其他解决方案 从 VBA代码中使用我的早期代码,从另一封电子邮件中保存附件(Exce
我正在尝试自动化我们一直发送给各种堆栈持有人的电子邮件过程. 我想根据公司代码过滤D列,并将电子邮件发送给O列中列出的人员(不应重复电子邮件),还需要包括CC(无重复) 下面是正在尝试的VBA,但不能包括TO和CC. Sub Send_Row_Or_Rows_2() Dim OutApp As Object Dim OutMail As Object Dim rng As Range Dim Ash As Worksheet Dim Cws As Worksheet Dim Rcount As Long Dim Rnum As Long Dim FilterRange As Range Dim FieldNum As Integer Dim StrBody As String Dim StrBody2 As String Dim FileToAttach As String
我已经编写了Excel VBA代码,该代码通过Outlook发送电子邮件. 到处都是我所看的,将文件连接到电子邮件的示例代码是静态命名文件,如,您每次都会发送相同的文件名,同一路径. 运行此宏的按钮在我要附加的工作簿内. Sub mySub Dim objOutlook As Outlook.Application Dim objOutlookMsg As Outlook.MailItem Dim objOutlookRecip As Outlook.recipient Dim objOutlookAttach As Outlook.Attachment Dim WeekendingDate As Date With Worksheets("Macro Buttons") WeekendingDate = Range("N2").Value End With Set ob
以下代码(我从几个来源提取)现在起作用,当我在主题行中收到带有特定单词的电子邮件时,它会触发一个运行以下的脚本. 此代码随后保留主题行,将消息正文和前进添加到预期的收件人中. 但是,如果我收到的电子邮件具有附件,则代码将不再转发任何内容.我需要它也可以转发给我发送的附件(只使用代码将文本添加到电子邮件正文中,否则我只会设置规则). 代码下面: Sub ForwardEmail(item As Outlook.MailItem) Dim oExplorer As Outlook.Explorer Dim oMail As MailItem Set oExplorer = Application.ActiveExplorer On Error GoTo Release If oExplorer.Selection.item(1).Class = olMail Then Set oMail = item.Forward oMail.Subject = oMail.S
要求是将附件上传到服务器.但是,我们只想上传这些出现在Outlook的"消息"行(请参阅下图)中,电子邮件正文中没有其他内容. 由于Outlook本身知道应该在行中显示哪种附件,因此必须有信息用于内部区分它们. 那么,我该如何在我的VBA程序中做到这一点?我尝试使用MailItem.Attachments,但是所有附件都在那里,我找不到它们的任何属性可以用来区分. 更新 原始标题"带有Outlook VBA的Endish Endish Enverded Atactments"有点误导.所以我更改了标题. Outlook屏幕截图: 解决方案 我可以测试到目前为止,嵌入式附件始终具有MIME内容ID,无论它是否出现在邮件主体中.因此,解决方案是检查它是否具有内容ID. 这是一个示例代码,计算可见附件: Sub ShowVisibleAttachmentCount() Const PR_ATTACH_CONTENT_ID As String
我正在尝试下载,然后在Excel中使用VBA打开Excel电子表格附件. 我怎么: 下载我的Outlook Inbox中的第一封电子邮件(最新电子邮件)中的唯一一个附件 保存带有指定路径的文件中的附件(例如:" C:...") 将附件名称重命名为:当前日期 + 上一个文件名 将电子邮件保存到其他文件夹中,并带有" C:..."之类的路径 在Outlook中标记电子邮件为"读" 开放 Excel中的Excel附件 我还希望能够将以下字符串保存为分配给单个变量的单个字符串: 发送者电子邮件地址 收到的日期 发送的日期 主题 电子邮件的消息 虽然我自己最好在一个单独的问题/查找中询问. 我当前确实拥有的代码来自其他论坛在线,可能不是很有帮助.但是,这是我一直在研究的一些碎片: Sub SaveAttachments() Dim olFolder As Outlook.MAPIFolder Dim att As Outlook
我正在使用FileUpload控件创建ASP.NET表单,然后将表单的详细信息和文件发送给另一个管理员.我想确保此安全(对于服务器和收件人).附件应为简历,因此我将其限制为典型的文本文档. 我可以告诉最好的选择是检查文件扩展名或MIME类型是这样的,并根据"魔术数字"进行检查,以验证扩展程序尚未更改.我不太担心如何去做,但想知道这是否真的足够了. 我也很乐意使用第三方产品来照顾这一点,我看了一对: blueimp jquery文件上传 http://blueimp.github.github.io/jquery-file-upload/ P> 和cutesoft ajaxuploader http://ajaxuploader.com/demo/ 但是,蓝色木板似乎仍然需要自定义服务器验证(我想只是jQuery,它只是处理客户端验证),并且.NET ONE检查Mime-type匹配扩展名,但我认为MIME类型无论如何都遵循了扩展名. . so, 当文
发送带有以下代码的通用应用程序的附件,为什么? Dim emailMessage As New EmailMessage() emailMessage.[To].Add(New EmailRecipient("a@b.com")) emailMessage.Subject = "Test" emailMessage.Body = "Hello World" Dim localAppFolder = Windows.Storage.ApplicationData.Current.LocalFolder Dim file = Await localAppFolder.CreateFileAsync("SomeFile.txt", Windows.Storage.CreationCollisionOption.ReplaceExisting) Await Windows.St
我看到来自IE9桌面客户端的网址参数被弄糊状.链接是通过电子邮件发送的,所有混合的URL都来自电子邮件的平淡版本. 我几乎确定它与我的堆栈(django,nginx,mandrill)无关.原始字符是串行的一个负13个位置(例如rznvy_cynva = email_plain,ubgryfpbz = hotelscom). 这是通过: 进行操纵请求的一个示例 GET /book/48465?sid=rznvy_cynva&order=q09362qs55-741722-442521-98n2-n88s4nnr87192n&checkOut=07-17-15&affiliate=ubgryfpbz&checkIn=07-16-15 HTTP/1.1" 302 5 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" 所有带有修理URL的请求的用户代理都与示例相同.