首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么调用客户端的outlook2007发送邮件

2012-04-16 
如何调用客户端的outlook2007发送邮件单击页面上的send按钮,在客户端打开outlook一个新邮件的页面,要求out

如何调用客户端的outlook2007发送邮件
单击页面上的send按钮,在客户端打开outlook一个新邮件的页面,要求outlook账户是当前系统登入的用户账户,并且在代码里把收件人,主题,附件和内容都写好,只要单击发送即可发出邮件

[解决办法]
我知道了下面代碼

C# code
 MailMessage objMailMessage = new MailMessage();                 objMailMessage.From = new MailAddress("Xin_Yin@intra.pegatroncorp.com");                 //objMailMessage.To.Add(new MailAddress(To[i]));                 objMailMessage.To.Add(new MailAddress("kylin_liu@pegatroncorp.com"));                 objMailMessage.To.Add(new MailAddress("azai_wang@intra.pegatroncorp.com"));                 objMailMessage.CC.Add(new MailAddress("xin_yin@intra.pegatroncorp.com"));                 objMailMessage.Subject = message.Subject;                 objMailMessage.Body = body;                 objMailMessage.IsBodyHtml = true;                 System.String strFileName8 = v_Img1;                 Attachment attached8 = new Attachment(strFileName8);                 attached8.ContentId = "Img1";                 objMailMessage.Attachments.Add(attached8);                 System.String strFileName5 = v_Img2;                 Attachment attached5 = new Attachment(strFileName5);                 attached5.ContentId = "Img2";                 objMailMessage.Attachments.Add(attached5);                 System.String strFileName6 = v_Img3;                 Attachment attached6 = new Attachment(strFileName6);                 attached6.ContentId = "Img3";                 objMailMessage.Attachments.Add(attached6);                 Attachment attached7 = new Attachment(_Xls);                 objMailMessage.Attachments.Add(attached7);                 SmtpClient sender = new SmtpClient();                 sender.Host = "relay-b.sz.pegatroncorp.com";                 sender.Port = 25;                 sender.Credentials = new NetworkCredential("mail賬號", "密碼", "網域");                 sender.DeliveryMethod = SmtpDeliveryMethod.Network;                 //sender.EnableSsl = true;                 sender.Send(objMailMessage);
[解决办法]
从3年前的blog里翻出来的:

客户端用javascript操作outlook(包括自动加附件)的代码:

var outlookApp = new ActiveXObject("Outlook.Application");
  var nameSpace = outlookApp.getNameSpace("MAPI");
  mailFolder = nameSpace.getDefaultFolder(6);
  mailItem = mailFolder.Items.add('IPM.Note.FormA');
  mailItem.Subject = "主题";
  mailItem.To = "abc@abc.com";
  mailItem.HTMLBody = "邮件内容";
  var fso = new ActiveXObject("Scripting.FileSystemObject");
  var tempfile = "c:\\temp\\t1.txt"
  var addr = "http://abc.com/test.aspx?filename=test.pdf";//这个aspx的后台代码比较简单,就是利用Response.ContentType = "application/pdf"; Response.WriteFile(fileName)的方式返回pdf文件
  var oHttp = new ActiveXObject("Microsoft.XMLHTTP");//用ajax方法获得pdf文件,本来想用jquery做,但查了一下,说是jquery不直接支持传二进制文件,虽然有别人写的base64的扩充函数,但觉得比较麻烦.
  oHttp.open("GET", addr, false);
  oHttp.send();
  var ostream = new ActiveXObject("ADODB.Stream");//Scripting.FileSystemObject说是不支持二进制文件,只能用这个
  with (ostream) {
  type = 1; //binary
  mode = 3; //readwrite
  open();
  write(oHttp.responseBody);
  savetofile(tempfile, 1); //savecreatenotexist
  close();
  mailItem.Attachments.Add(tempfile );
  fso.DeleteFile(tempfile);//delete tempfile
  mailItem.display(0);
 }
  ostream = null;
  oHttp = null;
  fso = null;
这个方法的主要缺点,就是必须修改浏览器的安全性设置,ie下:(其他浏览器没有测试)
1.把服务器加到受信任的站点
2.点击自定义级别,这两项必须都设为"启用":
  1)对没有标记为安全的ActiveX控件进行初始化和脚本运行
  2)下载未签名的ActiveX控件

另外,savetofile函数只接受绝对路径.
所以,这种方法的实用性很低。
结论:要自动添加附件,只能在服务器端做。

热点排行