zoukankan      html  css  js  c++  java
  • .net System.Web.Mail发送邮件

    net System.Web.Mail发送邮件

    用System.Web.Mail发送邮件,适用于.net1.1。net2.0请用System.Net.Mail

    先引用System.Web

    1,发送简单邮件

    [ C# ]

    MailMessage mail = new MailMessage();

    mail.To = "me@mycompany.com";

    mail.From = "you@yourcompany.com";

    mail.Subject = "this is a test email.";

    mail.Body = "this is my test email body";

    SmtpMail.SmtpServer = "localhost"; //your real server goes here

    SmtpMail.Send( mail );

    这里的smtpserver只能是那些不需要验证的smtp服务器,像126,sina,yahoo等等的邮箱,都需要验证,所以不能用。用这些邮箱发信后面会讲到

    2,发送Html邮件

    [ C# ]

    MailMessage mail = new MailMessage();

    mail.To = "me@mycompany.com";

    mail.From = "you@yourcompany.com";

    mail.Subject = "this is a test email.";

    mail.BodyFormat = MailFormat.Html;

    mail.Body = "this is my test email body.<br><b>this part is in bold</b>";

    SmtpMail.SmtpServer = "localhost"; //your real server goes here

    SmtpMail.Send( mail );

    3,发送附件

    [ C# ]

    MailMessage mail = new MailMessage();

    mail.To = "me@mycompany.com";

    mail.From = "you@yourcompany.com";

    mail.Subject = "this is a test email.";

    mail.Body = "this is my test email body.";

    MailAttachment attachment = new MailAttachment( Server.MapPath( "test.txt" ) ); //create the attachment

    mail.Attachments.Add( attachment ); //add the attachment

    SmtpMail.SmtpServer = "localhost"; //your real server goes here

    SmtpMail.Send( mail );

    4,修改发件人和收件人的名称

    比如发件人的地址是abc@126.com,我们用outlook收到信,From一栏里将直接显示abc@126.com.

    能不能在From一栏里显示友好一点的名字呢?

    比如显示Tony Gong

    方法如下:

    [ C# ]

    MailMessage mail = new MailMessage();

    mail.To = "\"John\" <me@mycompany.com>";

    mail.From = "\"Tony Gong\" <you@yourcompany.com>";

    mail.Subject = "this is a test email.";

    mail.Body = "this is my test email body.";

    SmtpMail.SmtpServer = "localhost"; //your real server goes here

    SmtpMail.Send( mail );

    5,发送给多人

    [ C# ]

    MailMessage mail = new MailMessage();

    mail.To = "me@mycompany.com;him@hiscompany.com;her@hercompany.com";

    mail.From = "you@yourcompany.com";

    mail.Subject = "this is a test email.";

    mail.Body = "this is my test email body.";

    SmtpMail.SmtpServer = "localhost"; //your real server goes here

    SmtpMail.Send( mail );

    6,用需要Smtp验证的邮箱发信

    现在为了防止垃圾邮件,绝大部分Smtp服务器需要验证了

    发信方法如下:

    [ C# ]

    MailMessage mail = new MailMessage();

    mail.To = "me@mycompany.com";

    mail.From = "abc@126.com";

    mail.Subject = "this is a test email.";

    mail.Body = "Some text goes here";

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abc"); //set your username here

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "your password"); //set your password here

    SmtpMail.SmtpServer = "smtp.126.com"; //your real server goes here

    SmtpMail.Send( mail );

     

    7,修改smtp服务器的端口,以及使用SSL加密

    大部分smtp服务器的端口是25,但有些却不是

    同时,绝大部分Smtp服务器不需要SSL登陆,有些却需要

    比如Gmail,smtp端口是:465,同时支持SSL

    代码如下:

    [ C# ]

    MailMessage mail = new MailMessage();

    mail.To = "me@mycompany.com";

    mail.From = "abc@126.com";

    mail.Subject = "this is a test email.";

    mail.Body = "Some text goes here";

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "abc"); //set your username here

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "your password"); //set your password here

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport",465);

    mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");

    SmtpMail.SmtpServer = "smtp.126.com"; //your real server goes here

    SmtpMail.Send( mail );

    今天应客服部的要求,需要在给客户发送邮件的后,当客户阅读邮件的时候给发件人一个回执信息,好让我们知道客户已经收到邮件,并开始阅读了。这个功能在一般的qq邮箱或者其他的邮箱中设置都比较方便,只要勾选一下就可以了。但是我们是用的.net写的程序直接发送邮件,所以就只能修改代码了,谷歌了一圈,费了不少劲,不过还是在MSDN中找到了http://msdn2.microsoft.com/en-us/vbasic/bb630227.aspx ,应该算是比较权威的,虽然是英文的,不过借助于翻译工具还是可以理解的。

    里边说的关键是这样设置
    MyMailMessage.Headers.Add(“Disposition-Notification-To”, returnreceipt@return.com)

    //后面的一个邮箱地址,就是要接受回执的邮箱了

    测试以后,通过。OK。

     顺便把网上的一些其他的方法也收集一下,有需要的也可以参考一下:

     一、在.NET 1.1 环境下
    1)使用System.Web.Mail方式,回执功能无法测试成功。
    2)使用CDOsys.dll组件方式,只能实现“收到回执”,而“已读回执”失败。(cdosys.dll是内置在操作系统里面的,在system32目录下。具体的操作方法,参考http://blog.csdn.net/irvine007/archive/2006/02/22/606117.aspx资料)

    二、在.NET 2.0情况下
    使用2.0的System.Net.Mail,使用前面资料提到的方法,“已读回执”测试失败。但可以用mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;实现“收到回执”功能

    最后解决方案,在一位熟悉notes服务器的同事指点下,
    mail.Headers.Add(“ReturnReceipt”, “1″);
    成功实现了“已读回执”。
    随后在.NET 1.1 环境下测试,发现无效,只能在在.NET 2.0 环境下正常运行。

  • 相关阅读:
    国庆后的星期一
    如何让百度快速收录文章
    牛大发了~美国12岁女孩自制"火箭"将Hello Kitty送上近太空
    免费CDN /初体验 访问量激升19%
    国外免费CDN CloudFlare申请教程
    Windows Azure Application申请方法
    坚持转自网易轻博客LOFTER
    玩转你的Gravatar全球通用头像
    IIS下配置WordPress永久链接支持中文完美方法
    常用的SqlHelper类
  • 原文地址:https://www.cnblogs.com/zhengguangITelite/p/2365109.html
Copyright © 2011-2022 走看看