使用QQ作为发起端:
// System.Net.Mail.MailMessage myMail = new System.Net.Mail.MailMessage();
// myMail.From = new System.Net.Mail.MailAddress("发送者邮箱"); //发送者,要和邮件服务器的验证信息对应,不能随便更改
// //myMail.From = new System.Net.Mail.MailAddress("发送者邮箱"); //发送者,要和邮件服务器的验证信息对应,不能随便更改
// myMail.To.Add(new System.Net.Mail.MailAddress("接收者邮箱")); //接收者邮箱
// myMail.Subject = "印章申请审批"; //邮件标题
// myMail.SubjectEncoding = Encoding.UTF8; //标题编码
// string content = "Hi test“ ===============================================";
// myMail.Body = content; //邮件内容
// myMail.BodyEncoding = Encoding.UTF8; //邮件内容编码
// myMail.IsBodyHtml = true; //邮件内容是否支持html
//System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(); //创建smtp实例对象
// smtp.EnableSsl = true; //使用加密连接
// smtp.UseDefaultCredentials = false;
// smtp.Host = "smtp.qq.com"; //邮件服务器地址
// //smtp.Port = 587; //邮件服务器端口
// //邮件服务器验证信息(密码为QQ邮箱中申请的随机授权码)
// smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "chptrkpmnmsxbeaa");
// smtp.Send(myMail); //发送邮件
使用OUTLOOK作为发起端
outlook 邮件发起者默认为本地登录邮箱, 打开outlook->文件->可以配置本地outlook账号
using Outlook = Microsoft.Office.Interop.Outlook;
Outlook.Application olApp = new Outlook.Application();
Outlook.MailItem mailItem = (Outlook.MailItem)olApp.CreateItem(Outlook.OlItemType.olMailItem);
mailItem.To = “接受者邮箱”;
mailItem.Subject = DateTime.Now.ToString(“yyyyMMdd”) + “_报表”;
mailItem.BodyFormat = Outlook.OlBodyFormat.olFormatHTML;
string content = "附件为" + DateTime.Now.ToString("yyyyMMdd") + " 数据,请查阅,谢谢!";
content = "test mail";
mailItem.HTMLBody = content;
// mailItem.Attachments.Add(@"c:\test.rar");
((Outlook._MailItem)mailItem).Send();
mailItem = null;
olApp = null;
Outlook.Application olApp = new Outlook.Application();
Outlook.MailItem mailItem = (Outlook.MailItem)olApp.CreateItem(Outlook.OlItemType.olMailItem);
如果在cs程序中以上代码测试可通过。若在web中这里可能报异常,需要配置权限,解决方案在这:
https://blog.csdn.net/tony0225/article/details/18349443
最近Tony小编在VS2003+Office 2010的环境下编写了一个使用OutLook发送邮件的功能(具体模块代码参见文章“关于C#发送邮件模块”),在模块从无到有,从测试到收尾的过程中遇见很多错误和异常,那么下面Tony小编就这些错误和异常做一个小结,希望对大家有所帮助,如果在哪里有不足之处,还请各位高手加以指正。
其实说到Office组件那么就肯定离不开DCOM的设置,DCOM中的设置如下:
1:在服务器上安装office的OutLook软件.
2:在"开始"->“运行"中输入dcomcnfg启动"组件服务”
3:依次双击"组件服务"->“计算机”->“我的电脑”->“DCOM配置”
4:在"DCOM配置"中找到"Mocrosoft Outlook Command ButtonControl",在它上面点击右键,然后点击"属性",弹出"Mocrosoft Outlook Command ButtonControl 应用程序属性"对话框
5:在"DCOM配置"中找到"Outlook Messge Attachment",在它上面点击右键,然后点击"属性",弹出"Outlook Messge Attachment 应用程序属性"对话框
6:在"DCOM配置"中找到"otkloadr",在它上面点击右键,然后点击"属性",弹出"otkloadr 应用程序属性"对话框
7:点击"安全"标签,在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加一个"NETWORK SERVICE"用户和“EVERYONE”,并给它赋予全部权限
8:依然是"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户和“EVERYONE”,并给它赋予全部权限
9:点击"标识"标签,选择"交互式用户"
做过步骤9之后,在这里有些时候就可能会出现以下问题:
错误&异常:
系统发生未知异常,检索 COM 类工厂中 CLSID 为{0006F03A-0000-0000-C000-000000000046} 的组件时失败,原因是出现以下错误:8000401a。
原因:
选择了“交互式用户”
解决方案:
取消交互式用户,指定为下列用户,并在下列用户那里输入机器登陆的用户名和密码。
注意:以上步骤7-9必须在步骤4-6中都要设置!
更改为“下列用户”之后,在这里有些时候就可能会出现以下问题:
错误&异常:
系统发生未知异常,无法打开文件C:\Users\Administrator\Documents\Outlook 文件\Outlook.pst
原因:
是你在调用OutLook发送邮件时候,windows就会去找默认的OutLook数据源文件(.pst),而你没有设置成需要调用邮件账户的数据源文件时,那么就会报“系统发生未知异常,无法打开文件C:\Users\Administrator\Documents\Outlook 文件\Outlook.pst”而这里的Outlook.pst就是需要调用邮件账户的数据源文件。
解决方案:
1、打开OutLook,选择“文件”---“账户设置”---“电子邮件”---选择列出的全部用户并删除。
2、打开OutLook,选择“文件”---“账户设置”---“数据文件”---选择列出的全部数据文件并删除,默认的数据文件无法删除保留即可,关闭并退出OutLook。
3、打开”C:\Users\Administrator\Documents\Outlook 文件“目录,将文件夹下的全部配置文件删除。
若无法删除:
* 启动任务管理器,在进程中找到outlook.exe并结束进程,即可删除。
* 重新启动计算机,即可删除。
4、点击“开始”---“控制面板”---“邮件”---“显示配置文件”,将列出的全部配置文件全部删除。
5、点击“开始”---“控制面板”---“邮件”---“显示配置文件”---“添加”---输入自定义别名“XXX”---“确定”,下面按照配置邮件账户的步骤继续即可。
6、设置完成后,选择“始终使用此配置文件”并在下拉框中选择配置好的数据文件“XXX”---点击“应用”---"确定"。
7.如果还不行,IIS中高级设置,进程模型->标识->ApplicationPoolIdentity修改为localsystem