C#利用SMTP服务器发送邮件

使用.net(C#)发送邮件学习手册(带成功案例) 
1.了解发送邮件的三种方式 
2.实例介绍使用client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis 
3.如何设定本机IIS的SMTP服务器 
1.了解发送邮件的三种方式 
第一:client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
//通過遠程SMTP服務器傳送該郵件,這裡的network表示你要使用的远程SMTP服務器。 
第二:client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis; 
//通過本機SMTP服務器傳送該郵件,这里的PickupDirectoryFromIis表示你的邮件会通过本机IIS的SMTP服務器传送你的邮件。所以如果使用该项一定要设定在SMTP服務器上设定好你要转到的服务器的地址。下文会详细介绍。 
第三:client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory; 
//表示电子邮件会被复制到System.Net.Mail.SmtpDeliveryMethod.PickupDirectorylocation所指定的目录中。以便有其他程序来执行发送该邮件。

2.实例介绍使用client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis传送邮件。
(1)mail.aspx的代码如下(直接粘贴):

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="mail.aspx.cs" Inherits="mail" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5. <title>mail to users</title>
  6. </head>
  7. <body>
  8. <form id="form1" runat="server">
  9. <div>
  10. <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
  11. </div>
  12. </form>
  13. </body>
  14. </html>

(2)mail.aspx.cs代码如下: 
注意:一般公司 都是代理上网的。所以如果使用该项。只能发送内部网的邮件。 
但是并不是说该项不能发送外部网的邮件。而是代理封锁的原因。

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. using System.Net;
  12. using System.Net.Mail;
  13. public partial class mail : System.Web.UI.Page
  14. {
  15. protected void Page_Load(object sender, EventArgs e)
  16. {
  17. //SendMail(发件者, 收件者, 主旨, 内容, 主机,发件者昵称, 密码 ,附件)
  18. SendMail("[email protected]", "[email protected]", "主旨", "邮件内容测试", "exhj.yyhj.com.cn", "孙节", "yyhj", "");
  19. }
  20. public void SendMail(string send, string recieve, string subject, string mailbody, string host, string uname, string pwd, string strFileName)
  21. {
  22. //生成一个   使用SMTP发送邮件的客户端对象
  23. System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();
  24. //生成一个主机IP
  25. //client.Port = 25; //587, 465, 995
  26. client.Host = host;
  27. //表示不以当前登录用户的默认凭据进行身份验证
  28. client.UseDefaultCredentials =true ;
  29. //包含用户名和密码
  30. if (uname != "")
  31. {
  32. client.Credentials = new System.Net.NetworkCredential(uname, pwd);
  33. }
  34. //指定如何发送电子邮件。
  35. client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;
  36. //通过本机SMTP服务器传送该邮件,
  37. //其实使用该项的话就可以随意设定“主机,发件者昵称, 密码”,因为你的IIS服务器已经设定好了。而且公司内部发邮件是不需要验证的。
  38. System.Net.Mail.MailMessage message = new System.Net.Mail.MailMessage();
  39. message.To.Add(recieve);
  40. message.From = new System.Net.Mail.MailAddress(send, uname, System.Text.Encoding.UTF8);
  41. message.Subject = subject;
  42. message.Body = mailbody;
  43. //定义邮件正文,主题的编码方式
  44. message.BodyEncoding = System.Text.Encoding.GetEncoding("UTF-8");
  45. message.SubjectEncoding = System.Text.Encoding.GetEncoding("UTF-8");
  46. //获取或设置一个值,该值指示电子邮件正文是否为   HTML。
  47. message.IsBodyHtml = false;
  48. //指定邮件优先级
  49. message.Priority = System.Net.Mail.MailPriority.High;
  50. //添加附件
  51. //System.Net.Mail.Attachment data = new Attachment(@"E:\9527\tubu\PA260445.JPG", System.Net.Mime.MediaTypeNames.Application.Octet);
  52. if (strFileName != "" && strFileName != null)
  53. {
  54. Attachment data = new Attachment(strFileName);
  55. message.Attachments.Add(data);
  56. }
  57. try
  58. {
  59. //发送
  60. client.Send(message);
  61. Label1.Text = "发送成功!";
  62. }
  63. catch (System.Net.Mail.SmtpException ex)
  64. {
  65. Label1.Text ="发送失败:"+ ex.Message;
  66. }
  67. }
  68. }

2.介绍使用client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network传送邮件。 
使用该项的话。你的电脑首先必须是直接链接外网的。 
那就直接把mail.aspx.cs里的client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.PickupDirectoryFromIis;换成client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network; 
然后要设定的就是 
//SendMail(发件者, 收件者, 主旨, 内容, 主机,发件者昵称, 密码 ,附件) 
SendMail("[email protected]", "[email protected]", "主旨", "12.37郵件內容", "smtp.163.com", "loeley", "81859505", ""); 
转自:http://hi.baidu.com/lslyl/blog/item/ba67366ef4202ddd80cb4afa.html

1、首先要发送邮件,需要有一个邮箱帐号,比如网易邮箱、新郎邮箱、qq邮箱等,我以网易的163邮箱为例。然后我们需要知道163邮箱的smtp服务器地址:smtp.163.com。一般常用的Smtp服务器地址为:网易126:smtp.126.com网易163:smtp.163.com搜狐:smtp.sohu.com新浪:smtp.sina.com.cn雅虎:smtp.mail.yahoo.com

2、现在我们可以开始实现了。在新建的C# Console Application中,需要加入两个命名空间:

using System.Net.Mail; //新建邮件、发送邮件需要用到using System.Net; //建立认证帐号需要用到

C#利用SMTP服务器发送邮件,布布扣,bubuko.com

时间: 2024-12-11 14:45:52

C#利用SMTP服务器发送邮件的相关文章

20150307 利用smtp协议发送邮件

20150307 利用smtp协议发送邮件 2015-03-07 Lover雪儿 一.smtp匿名发邮件 ? Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. ? C:\Users\Administrator>nslookup -q=mx qq.com Server: XiaoQiang Address: 192.168.31.1 ? Non-au

Linux 上使用 Gmail SMTP 服务器发送邮件通知

导读 假定你想配置一个 Linux 应用,用于从你的服务器或桌面客户端发送邮件信息.邮件信息可能是邮件简报.状态更新(如 Cachet).监控警报(如 Monit).磁盘时间(如 RAID mdadm)等等.当你要建立自己的 邮件发送服务器 传递信息时 ,你可以替代使用一个免费的公共 SMTP 服务器,从而避免遭受维护之苦. 谷歌的 Gmail 服务就是最可靠的 免费 SMTP 服务器 之一.想要从应用中发送邮件通知,你仅需在应用中添加 Gmail 的 SMTP 服务器地址和你的身份凭证即可.

微软BI 之SSIS 系列 - 使用 Script Task 访问非 Windows 验证下的 SMTP 服务器发送邮件

开篇介绍 大多数情况下我们的 SSIS 包都会配置在 SQL Agent Job 中周期性的按计划执行,比如每天晚上调用 SSIS 包刷新数据,处理 Cube 等.一旦 SSIS 包中出现任何异常,报错,那么配置在 SQL Agent Job 中的通知,邮件提醒就会把这些错误信息发邮件到指定的用户或者系统维护者,这样就起到了一个错误监控的作用. 但是在有的情况下,有一些自定义的 SSIS 调度框架的计划调度都不是通过 SQL Agent Job 配置来完成的.比如我以前在一个小项目中设计过一个

[教程] Windows Server 2008 R2架设SMTP服务器发送邮件教程

Windows Server 2008 R2 架设SMTP服务器实现邮件发送 目的:架设SMTP服务器实现邮件发送. 一.域名设置 添加“邮件交换记录(MX)”: Newjs.cn                目标主机:IP地址 添加“主机名”: Mail.newjs.cn                IP地址 Smtp.newjs.cn                IP地址 二.Windows Server 2008 R2服务器本地配置 1.进入“控制面板”——“管理工具”——“服务器管

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件

python3:利用smtplib库和smtp.qq.com邮件服务器发送邮件 使用qq的邮件服务器需要注意的两个地方主要是: 1.协议问题 使用465端口 SSL 协议 2.口令问题 出现SMTPAuthenticationError 主要的原因就是口令和帐号信息不对,这里我们使用qq服务器发送 需要先到邮箱里设置独立密码(必须), 然后开启 SMTP/POP3服务.然后用qq手机安全中心扫一扫会给一个授权码, 在代码中要填写的密码是这个授权码, 而不是邮箱密码! 示例代码: # python

Nagios监控之利用sendmail使用第三方SMTP服务发送邮件报警

使用Centos系统自带的sendmail服务作为客户端,使用第三方SMTP服务发送邮件报警. 此功能是在nagios服务正常安装运行的基础上实现的;因此要先安装好基本的nagios运行环境,这个可以参考本人相关的博文. 1.软件检测及安装 #rpm -q sendmail 不存在怎安装 #yum -y install sendmail 2.停止sendmail服务 这里不需要sendmail作为邮件服务端来运行,所以关闭sendmail服务. #service sendmail stop 3.

linux下设置SMTP服务器并用mail命令发送邮件精解

在linux下设置SMTP服务器并用mail命令发邮件精解步骤: 1.vi /etc/mail.rc 在末尾追加如下内容: set [email protected]    //默认对外发送邮件的用户邮箱地址set smtp=smtp.domain.com    //选用默认发送邮件的公共邮件域名set [email protected]    //默认对外发邮件的用户set smtp-auth-password=password    //对应默认用户的密码set smtp-auth=logi

centos smtp模式发送邮件简单小办法

运维人员经常会用到邮件通知预警,利用smtp模式可以通过大部分的邮箱服务器的验证,而不会出现发送失败的问题. 简单二步就可以配好一个smtp发送邮件 centos 6.x #yum install mail centos 7.x #yum install mailx 配置你的smtp信息,要在你的邮件服务器上,开启SMTP功能,不然也不会成功. #vi /etc/mail.rc set from="[email protected]"  set smtp=smtp.yeah.net s

163 smtp服务器响应为:User has no permission

今天在asp.net程序中,利用System.Net.Mail.MailMessage类和网易163免费邮箱服务器发送邮件时出现了如下问题. 原因很简单,我们在asp.net程序中利用程序发送邮件,相当于自定义new了一个登入163邮件服务器的客户端,利用userName和pwd登录到163邮件服务器,然后通过163 smtp服务器进行发送邮件.因此,我们需要登录自己的163邮箱,进行如下授权操作即可. 授权之后,邮件发送正常.