转:http://blog.csdn.net/alfred_72/article/details/9980279

因为不知道VS2010 Sharepoint 有EventReciver这个添加项,走了很多弯路。

 

步骤:

1.建立 空白Sharepoint项目解决方案。

2.添加项 选择-EventReciver(事件接收器)。

3. 配置--事件接收器类型,事件源项,需要处理哪些事件。

 

完成之后会生成相应的EventHandler类,方法,Feature1.feature1会自动添加站点功能项。  可以查看一下feature.xml和Element都生成了什么东西,这两个是部署到Sharepoint站点上的关键东西,一开始我不知道可以自动生成,自己在那写这两个文件,一直部署不了。

 接着是重写相应的类中的方法,我这里是重写ItemAdded方法,在list 添加新列的时候发送邮件通知。

Code:

  1. using System;
  2. using System.Security.Permissions;
  3. using Microsoft.SharePoint;
  4. using Microsoft.SharePoint.Security;
  5. using Microsoft.SharePoint.Utilities;
  6. using Microsoft.SharePoint.Workflow;
  7. using System.Net;
  8. using System.Net.Mail;
  9. using System.Net.Mime;
  10. using System.Text;
  11. namespace SharePointProject4.EventReceiver1
  12. {
  13. /// <summary>
  14. /// 列表项事件
  15. /// </summary>
  16. public class EventReceiver1 : SPItemEventReceiver
  17. {
  18. /// <summary>
  19. /// 已添加项.
  20. /// </summary>
  21. public override void ItemAdded(SPItemEventProperties properties)
  22. {
  23. base.ItemAdded(properties);
  24. string mailTitle = "";
  25. string mailContent = "";
  26. string address = "";
  27. if (properties.ListTitle == "邮件内容")
  28. {
  29. SPListItem item = properties.ListItem;
  30. mailTitle = item["标题"].ToString();
  31. mailContent = item["邮件内容"].ToString();
  32. address = item["邮件地址"].ToString();
  33. }
  34. SendEmail(mailTitle, mailContent, address);
  35. }
  36. public void SendEmail(string title, string content, string address)
  37. {
  38. try
  39. {
  40. Encoding encoding = Encoding.GetEncoding(936);
  41. MailMessage Message = new MailMessage(
  42. //from
  43. new MailAddress("117738414@qq.com", "邮件主题", encoding),
  44. //to
  45. new MailAddress(address));
  46. Message.SubjectEncoding = encoding;
  47. Message.Subject = title;
  48. Message.BodyEncoding = encoding;
  49. Message.Body = content;
  50. //Message.Attachments.Add(new Attachment(null));
  51. SmtpClient smtpClient = new SmtpClient("smtp.qq.com");
  52. smtpClient.Credentials = new NetworkCredential("2313626895", "password");
  53. smtpClient.Timeout = 20000;
  54. smtpClient.Send(Message);
  55. }
  56. catch (Exception ex)
  57. {
  58. }
  59. }
  60. }
  61. }
using System;
using System.Security.Permissions;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Security;
using Microsoft.SharePoint.Utilities;
using Microsoft.SharePoint.Workflow;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Text; namespace SharePointProject4.EventReceiver1
{
/// <summary>
/// 列表项事件
/// </summary>
public class EventReceiver1 : SPItemEventReceiver
{
/// <summary>
/// 已添加项.
/// </summary>
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties); string mailTitle = "";
string mailContent = "";
string address = ""; if (properties.ListTitle == "邮件内容")
{
SPListItem item = properties.ListItem;
mailTitle = item["标题"].ToString();
mailContent = item["邮件内容"].ToString();
address = item["邮件地址"].ToString(); } SendEmail(mailTitle, mailContent, address); } public void SendEmail(string title, string content, string address)
{
try
{
Encoding encoding = Encoding.GetEncoding(936); MailMessage Message = new MailMessage(
//from
new MailAddress("117738414@qq.com", "邮件主题", encoding),
//to
new MailAddress(address)); Message.SubjectEncoding = encoding;
Message.Subject = title;
Message.BodyEncoding = encoding;
Message.Body = content;
//Message.Attachments.Add(new Attachment(null));
SmtpClient smtpClient = new SmtpClient("smtp.qq.com");
smtpClient.Credentials = new NetworkCredential("2313626895", "password");
smtpClient.Timeout = 20000;
smtpClient.Send(Message);
}
catch (Exception ex)
{ } } }
}

代码写完,右键解决方案---部署。VS会自动部署并且激活Feature,部署完后你可以到Sharepoint网站--网站设置--网站操作--管理网站功能。看到相应的Featrure已经被激活。

也就说明功能已经开始启用了!

VS2010使用EventHandler发邮件的更多相关文章

  1. # PHP - 使用PHPMailer发邮件

    PHPMailer支持多种邮件发送方式,使用起来非常简单 1.下载PHPMailer https://github.com/PHPMailer/PHPMailer,下载完成加压后, 把下边的两个文件复 ...

  2. Linux发邮件之mail命令

    一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容 set from=1968089885@qq.com smtp="smtp.qq.com" set ...

  3. 测试MailUtils,作用是发邮件

    package cn.itcast.test; import java.io.IOException; import javax.mail.MessagingException; import jav ...

  4. SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享

    SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...

  5. 学习linux之用mail命令发邮件

    背景 这两天工作比较闲,网上各种冲浪(这个词暴露我的网龄了).看到一位大神的文章更闲 <>.端详一番,原来是用R语言拼接字符串后用shell命令发出去.发现shell命令既然还能直接发邮件 ...

  6. linux mail利用外部邮箱地址发邮件

    mail命令发送邮件需要sendmail或postfix服务 三种常用格式发信 mail -s "标题" xxx@xxx.xxx #第一种方法,你可以把当前shell当成编辑器来用 ...

  7. 打电话,发短信,发邮件,app跳转

    1.打电话 - (IBAction)callPhone1:(id)sender { NSURL *url = [NSURL URLWithString:@"tel://18500441739 ...

  8. iOS中如何切换到发短信、打电话、发邮件

    我们在做APP的时候,难免会遇到需要调用短信,电话等程序的时候.如美团. 当然,这些都只是一些简单的方法就可以实现,但是时间久了也会淡忘,所以想写这边博客.一是为了再捡起来复习一下,另一个相当于留个备 ...

  9. 发邮件 和 excel导出中文文件名

    /** * 发邮件 * @param email * @param subject * @param body * @throws UnsupportedEncodingException */ pu ...

随机推荐

  1. HTML中动态图片切换JQuery实现

    相信很多同学都注意到了,各大新闻或者娱乐网站都含有动态图片切换,那个漂亮的感觉让刚刚学习html的人,都非常好奇和心动.那下面就让我们看一下到底如何实现动态图片切换呢?看一下百度贴吧的效果图吧~ // ...

  2. HDU2594 Simpsons’ Hidden Talents 字符串哈希

    最近在学习字符串的知识,在字符串上我跟大一的时候是没什么区别的,所以恶补了很多基础的算法,今天补了一下字符串哈希,看的是大一新生的课件学的,以前觉得字符串哈希无非就是跟普通的哈希没什么区别,倒也没觉得 ...

  3. Android 监听ListView、GridView滑动到底部

    // 监听listview滚到最底部 mIndexList.setOnScrollListener(new OnScrollListener() { @Override public void onS ...

  4. asp.net-(含:模拟登陆,照片列表)

    一.画好用户登录界面 同时换下请求的地址. 获取用户信息及判断代码插入位置: 一.画好用户登录界面 同时换下请求的地址. 获取用户信息及判断代码插入位置: <%@ WebHandler Lang ...

  5. 毕向东JAVA视频视频讲解(第八课)

    继承的好处: 1,提高了代码的复用性. 2,让类与类之间产生了关系,给第三个特征多态提供了前提. java中支持单继承.不直接支持多继承,但对C++中的多继承机制进行改良. 单继承:一个子类只能有一个 ...

  6. HTML5入门十---Canvas画布实现画图(一)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. TCL语言笔记:TCL中的数组

    一.介绍 Tcl 中的数组和其他高级语言的数组有些不同:Tcl 数组元素的索引,或称键值,可以是任意的字符串,而且其本身没有所谓多维数组的概念.数组的存取速度要比列表有优势,数组在内部使用散列表来存储 ...

  8. Java ssh 访问windows/Linux

     Java ssh 访问windows/Linux 工作中遇到的问题: Java code运行在一台机器上,需要远程到linux的机器同时执行多种命令.原来采用的方法是直接调用ssh命令或者调用pli ...

  9. pancake sort的几个问题

    1. 每次找剩下序列中的最大值,可以进行pancake sort,时间复杂度是O(n^2): 2. 求最少交换次数进行pancake sort的问题是个NP问题,搜索的时候,upper bound是2 ...

  10. IPC$命令详解

    一 摘要二 什么是ipc$三 什么是空会话四 空会话可以做什么五 ipc$所使用的端口六 ipc管道在hack攻击中的意义七 ipc$连接失败的常见原因八 复制文件失败的原因九 关于at命令和xp对i ...