.Net 1.1中发送邮件使用System.Web.Mail.而到.Net 2.0中发送邮件建议使用System.Net.Mail,不推荐使用System.Web.Mail,但是原来的还能用,今天将原来1.1发送程序改写成2.0,但是一直是发送失败,一直被诺顿拦截,很奇怪,而且把诺顿Internet Email Auto Protected关闭就能发送出去.原来1.1从来没有诺顿拦截现象.
根据上面的链接查询Symantec Support KB,解释如下:
1 Start Outlook Express.
2 Click the Tools menu, and then click Accounts.
3 In the Internet Accounts list, click the name of the account that you use to send email.
4 Click Properties.
5 Click the Advanced tab.
6 Under Server Timeouts, drag the slider so that the number of minutes increases. The maximum time that you can set it to is 5 minutes.
7 Click OK.
8 Click Close.
晕死,设置发送超时时间为 5 Min
但是将发送TimeOut设为5*60*1000仍然发送失败,搞不懂了
1
public
void
SendNetSmtpMail2()
2


{
3

System.Net.Mail.MailMessage oMsg = new System.Net.Mail.MailMessage();
4

// Set the message sender
5

oMsg.From = new System.Net.Mail.MailAddress("
[email protected]", "upzone");
6

// The .To property is a generic collection,
7

// so we can add as many recipients as we like.
8

oMsg.To.Add(new System.Net.Mail.MailAddress("
[email protected]", "upzone"));
9

// Set the content
10

oMsg.Subject = "My First .NET email";
11

oMsg.Body = "Test body - .NET Rocks!";
12

oMsg.IsBodyHtml = true;
13

System.Net.Mail.SmtpClient oSmtp = new System.Net.Mail.SmtpClient("smtp.126.com");
14

//You can choose several delivery methods.
15

//Here we will use direct network delivery.
16

oSmtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
17
oSmtp.Timeout = 5 * 60 * 1000;
18

//Some SMTP server will require that you first
19

//authenticate against the server.
20

NetworkCredential oCredential = new NetworkCredential("upzone", "123456");
21

oSmtp.UseDefaultCredentials = false;
22

oSmtp.Credentials = oCredential;
23

//Let's send it already
24

oSmtp.Send(oMsg);
25
26

}
发送不成功,没有办法,只好改回原来1.1的发送程序,等解决了2.0的问题再说了.
1
public
void
SendSmtpMail()
2

{
3
System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
4
mail.To = "[email protected]";
5
mail.From = "[email protected]";
6
mail.Subject = "this is a test email.";
7
mail.Body = "Some text goes here";
8
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
9
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", "upzone"); //set your username here
10
mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "123456"); //set your password here
11
12
System.Web.Mail.SmtpMail.SmtpServer = "smtp.126.com"; //your real server goes here
13
System.Web.Mail.SmtpMail.Send(mail);
14
15
}