惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 三生石上(FineUI控件)
L
LangChain Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
Docker
T
Tailwind CSS Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
B
Blog
N
Netflix TechBlog - Medium
T
Threat Research - Cisco Blogs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
O
OpenAI News
M
MIT News - Artificial intelligence
D
DataBreaches.Net
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
L
LINUX DO - 热门话题
C
CERT Recently Published Vulnerability Notes
V
Visual Studio Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
N
News and Events Feed by Topic
Vercel News
Vercel News
T
Tenable Blog
Security Latest
Security Latest
C
Check Point Blog
云风的 BLOG
云风的 BLOG
PCI Perspectives
PCI Perspectives
月光博客
月光博客
TaoSecurity Blog
TaoSecurity Blog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Project Zero
Project Zero
雷峰网
雷峰网
IT之家
IT之家
H
Hacker News: Front Page
Microsoft Security Blog
Microsoft Security Blog
B
Blog RSS Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Last Week in AI
Last Week in AI
G
Google Developers Blog
Forbes - Security
Forbes - Security
The Register - Security
The Register - Security
Cyberwarzone
Cyberwarzone
小众软件
小众软件
Martin Fowler
Martin Fowler
K
Kaspersky official blog
P
Proofpoint News Feed
T
Threatpost
Google Online Security Blog
Google Online Security Blog
Microsoft Azure Blog
Microsoft Azure Blog

博客园 - 疯子峰

oracle性能分析2 oracle性能分析 诡异的socket连接失败 ELK配置watcher 多进程 vs 多线程 关于时间 ELK日志平台 Java web项目 wordpress之客户端发布文章 神舟笔记本安装ubuntu 10.10 安装vs2010 AOP, Aspect-oriented programming 获取淘宝商品描述和价格 - 疯子峰 - 博客园 SPQuery查询语法简要说明(转) - 疯子峰 - 博客园 SPEmailEventReceiver 之导入附件EXCEL 安装Windows 2003更新后导致moss 无法访问 - 疯子峰 Ubuntu 的启动过程概览 linux 全局配置文件 vim 用户配置
为incoming mail绑定事件,SPEmailEventReceiver
疯子峰 · 2010-01-19 · via 博客园 - 疯子峰

 1) 新建 class 项目, 添加Microsoft.Sharepoint.dll引用。新建class并继承SPEmailEventReceiver

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;namespace Sample{
    
public class Class1 : SPEmailEventReceiver
    {
        
public override void EmailReceived(SPList oList, SPEmailMessage oMessage,  string strReceiverData)   
        {  
            SPListItem oListItem 
= oList.Items.Add();  
            oListItem[
"Title"= oMessage.Headers["Subject"];  
            oListItem[
"Body"= oMessage.HtmlBody;  
            oListItem.Update();
foreach (SPEmailAttachment attachment in oMessage.Attachments)
            {
                
byte[] attachmentArray = new byte[attachment.ContentStream.Length];
                attachment.ContentStream.Read(attachmentArray, 
0, (int)attachment.ContentStream.Length);
                oList.RootFolder.Files.Add(attachment.FileName, attachmentArray);
            }
        }
    }
}

 2) 新建console项目,为列表绑定事件。

代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;namespace RegisterEvent
{
    
class Program
    {
        
static void Main(string[] args)
        {
            
string url = @"http://mossdev1/fa/corpsystem";
            SPSite curSite 
= new SPSite(url);
            SPWeb curWeb 
= curSite.OpenWeb();int t = 0;
            
foreach (SPList list in curWeb.Lists)
            {
                Console.WriteLine(t
++ + "" + list.Title);
            }
            SPList commentsList 
= curWeb.Lists["title value"];string asmName = "IISZ.SP.MailHandler, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a3efae80b726e354";
            
string className = "IISZ.SP.MailHandler.Class1";for ( int i = 0 ; i <  commentsList.EventReceivers.Count ; i ++ )
            {
                Console.Write(commentsList.EventReceivers[i].Class.ToString());
                 commentsList.EventReceivers[i].Delete();
                 Console.WriteLine(
" -- deleted!");
            }
            commentsList.EventReceivers.Add(SPEventReceiverType.EmailReceived, asmName, className);
            
foreach (SPEventReceiverDefinition srd in commentsList.EventReceivers)
            {
                Console.WriteLine(srd.Class.ToString() 
+ " -- added!" );
            }

            Console.ReadLine();
        }
    }
}

3) 调试绑定的进程为owstimer.exe

4) 发送附件为txt的文本文件,报错。查看事件管理器为:

Error loading and running event receiver Sample.Class1 in Sample, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a3efae80b726e354. Additional information is below.

: Value does not fall within the expected range.

5) 单步调试查到读取message.Attachments 报错,怀疑是文档库的问题,绑定事件到默认的文档库,同样错误。绑定到Announcements,OK.

6) 结论:document library 可以绑定邮件接收处理事件,但得不到附件信息。Announcements 一切可以。为什么?不知道。

浪费一整天,我是差不多先生。。。。

参考文档:

http://blogs.msdn.com/malag/archive/2009/05/13/attachments-disappear-with-custom-email-event-handler.aspx