读书人

急求asp.net发送邮件与接收邮件代码望

发布时间: 2012-02-01 16:58:19 作者: rapoo

急求asp.net发送邮件与接收邮件代码望高手们帮忙
急求asp.net"发送邮件"与"接收邮件"代码望高手们帮忙, 在线等`````

[解决办法]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net.Mail;

public partial class Default3 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
MailAddress MessageFrom = new MailAddress("itcaimeng@gmail.com"); //发件人邮箱地址
string MessageTo = "lwjdg@126.com"; //收件人邮箱地址
string MessageSubject = "测试例子"; //邮件主题
string MessageBody = "测试的例子终于成功了,很开心啊!"; //邮件内容
if (Send(MessageFrom, MessageTo, MessageSubject, MessageBody))
{
Response.Write("发送邮件成功");
}
else
{
Response.Write("发送邮件失败");
}
}
/// <summary>
/// 发送电子邮件
/// </summary>
/// <param name="MessageFrom">发件人邮箱地址 </param>
/// <param name="MessageTo">收件人邮箱地址 </param>
/// <param name="MessageSubject">邮件主题 </param>
/// <param name="MessageBody">邮件内容 </param>
/// <returns> </returns>
public bool Send(MailAddress MessageFrom, string MessageTo, string MessageSubject, string MessageBody)
{
MailMessage message = new MailMessage();
message.From = MessageFrom;
message.To.Add(MessageTo); //收件人邮箱地址可以是多个以实现群发
message.Subject = MessageSubject;
message.Body = MessageBody;
message.IsBodyHtml = true; //是否为html格式
message.Priority = MailPriority.High; //发送邮件的优先等级

SmtpClient sc = new SmtpClient();
sc.Host = "smtp.gmail.com"; //指定发送邮件的服务器地址或IP
//sc.Port = 587; //指定发送邮件端口
sc.UseDefaultCredentials = true;
sc.EnableSsl = true;
sc.Credentials = new System.Net.NetworkCredential("itcaimeng", "19881028"); //指定登录服务器的用户名和密码
try
{
sc.Send(message); //发送邮件
}
catch(Exception e)
{
Response.Write(e.Message);
return false;
}
return true;
}
}
[解决办法]
http://download.csdn.net/source/512772
http://www.51aspx.com/CV/WebMail/
http://www.diybl.com/course/4_webprogram/asp.net/asp_netshl/2008118/96685.html
[解决办法]
sending email is pretty simple:

MailMessage mail = new MailMessage();
mail.From = ""; // put the from address here
mail.To = ""; // put to address here
mail.Subject = ""; // put subject here
mail.Body = ""; // put body of email here
SmtpMail.SmtpServer = ""; // put smtp server you will use here
// and then send the mail
SmtpMail.Send(mail);

------解决方案--------------------


  朋友, 其实很多东西是与语言无关, 与平台无关, 更与什么架构无关. 这个问题, 是因为你首先将其定位在"只能用API"这个级别, 所以, 一上手就四处找这控件, 那SDK什么的. 其实, SMTP邮件协议并非想象中那么神秘, 那么难. 我们再将计算机世界之内的常用通信方法作分类: 1,同一进程可归结为线程之间的SendMessage; 2, 同一机器之内不同进程间可以用命名管道; 3,不同机器之内可以通过协议,尤其TCP/IP协议. 而邮件发送正是第三种. 我们目力所级一切语言无不支持以上通信方式.

  而SMTP协议, 技术上可分为两部分: 第一部分, 以放之四海而皆准的格式去拼一封邮件, 这个格式已经包含了附件的附加部分, 由易到难释随尊便; 第二部分, 以SMTP规定的协议格式发出去, 发射后不管.

  如果你有兴趣的话, 我明天回单位给你贴一段, 100行不到的代码发送最简单邮件.
[解决办法]

探讨
我本机不是server服务器.如果借助外部服务器,发送邮件呢。

C# codeprotectedvoid Page_Load(object sender, EventArgs e)
{if (Request.ServerVariables["REQUEST_METHOD"]=="POST")
{try
{
sendEmails("394007665@qq.com","test","dfdfd");
}catch{}
}

}publicstaticvoid sendEmails(string mailTo,string mailSubject,string mailBody)
{
MailMessage mail=new MailMessage();
SmtpClient smtpClient=new SmtpClient();

MailAddress fromAddress=new MailAddress("youaremy1bestlove@163.com");
mail.From= fromAddress;
mail.To.Add(mailTo);
mail.Subject=mailSubject;
mail.Body= mailBody;
smtpClient.Host="stamp.mail.163.com";

mail.IsBodyHtml=true;
smtpClient.Credentials=new NetworkCredential("youaremy1bestlove@163.com","yjjyjsfi0927");
smtpClient.Send(mail);

}

上面是我原来的代码,就是发送成功,很郁闷啊```


[解决办法]
我也在做 只有发邮件 看下 测试成功
C# code
 SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587);        smtp.Credentials = new System.Net.NetworkCredential("用户名", "密码");        smtp.EnableSsl = true;        //smtp.UseDefaultCredentials = false;        //MailMessage mailBody = new MailMessage(txtSender.Text.Trim().ToString(), txtReceiver.Text.Trim().ToString(), txtSubject.Text.Trim().ToString(), txtContent.Text.Trim().ToString());        MailMessage mailBody = new MailMessage("123@gmail.com", "superprogrammer@126.com", "text", "测试成功!");        mailBody.BodyEncoding = System.Text.Encoding.Default;    //编码          try        {            smtp.Send(mailBody);            Response.Write("<script>alert('邮件发送到 " + mailBody.To.ToString() + "');</script> ");        }        catch (Exception ee)        {            Response.Write("<script>alert('" + ee.Message + "请仔细检查邮件服务器的设置是否正确!');</script>");        }
[解决办法]
smtp服务和pop3都支持echo的,用socket可以写,看一下协议即可。

不过,这的前提是已经有邮件服务器。
[解决办法]
安装IIS的时候可以选择虚拟SMTP服务装上去。(一般是在server版里安装)
自动生成的默认SMTP站点,有几个缺省文件夹,它们位于inetpub目录下的mailroot文件夹中,主要的功能文件夹有:

Pickup:拾取待发送邮件,用户将待发邮件投入此文件夹。
Queue:保存传送过程中的邮件,因网络繁忙、目标服务器无响应等原因不能一次发送
成功的邮件暂存在此等待继续发送。
Drop:接收所有传入邮件。

用.net生成邮件文件至Pickup文件夹下就OK了!
测试过发送,接收没试过。不过说明里的Drop文件夹应该不是摆设
给楼主个新思路而已。不一定要纯代码写发送接收的


[解决办法]
你要是做商业的邮件管理软件,每天有大量邮件发出的话, 用本机smtp一般不行,大的公司都有固定IP,只要几天,该IP就会被当成垃圾邮件服务器封掉,特别是发给国外的邮件.

发送和接收都很简单,那有这么多问题问.
首先用foxmail测试你的邮箱是否可以正常发邮件,收邮件. 包括接收人地址是否正确.
代码中是否正确设置了smtp服务器/邮件帐号/密码等.

最大的问题是编码和解码问题, 需要经过大量的测试.

------解决方案--------------------


http://www.51aspx.com/CV/WebGmail/
[解决办法]
需要一个JMAIL组件的
[解决办法]


sockaddr_in oServer;
oServer.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");//自己机器建立了SMTP Service
oServer.sin_family=AF_INET;
oServer.sin_port=htons(25);
iResult=connect(iSocket,(sockaddr*)&oServer,sizeof(oServer));
if(iResult==SOCKET_ERROR)
ASSERT(FALSE);

iResult=recv(iSocket,ReceiveBuffer,1000,0);
pSendBuffer="helo\r\n";
iResult=send(iSocket,pSendBuffer,strlen(pSendBuffer),0);
iResult=recv(iSocket,ReceiveBuffer,1000,0);
pSendBuffer="mail from:<abc@def.com>\r\n";
iResult=send(iSocket,pSendBuffer,strlen(pSendBuffer),0);
iResult=recv(iSocket,ReceiveBuffer,1000,0);
pSendBuffer="RCPT TO:<def@kk.com>\r\n";
iResult=send(iSocket,pSendBuffer,strlen(pSendBuffer),0);
iResult=recv(iSocket,ReceiveBuffer,1000,0);
pSendBuffer="data\r\n";
iResult=send(iSocket,pSendBuffer,strlen(pSendBuffer),0);
iResult=recv(iSocket,ReceiveBuffer,1000,0);

oFile.Open("c:\\abc.txt",CFile::modeRead );
iResult=oFile.GetLength();
oFile.Read(pBuffer,oFile.GetLength());
iResult=send(iSocket,pBuffer,oFile.GetLength(),0);
oFile.Close();

pSendBuffer="\r\n.\r\n";
iResult=send(iSocket,pSendBuffer,strlen(pSendBuffer),0);
iResult=recv(iSocket,ReceiveBuffer,1000,0);
closesocket(iSocket);

读书人网 >asp.net

热点推荐