C# 邮件发送和接收实现代码
程序员文章站
2023-11-25 13:40:22
邮件发送 方法一:使用system.web.mail命名空间(此方法我测试没有成功过) 复制代码 代码如下:#region 发送邮件:此方法失败 protecte...
邮件发送
方法一:使用system.web.mail命名空间(此方法我测试没有成功过)
#region 发送邮件:此方法失败
protected void sendfailed()
{
system.web.mail.mailmessage mail = new system.web.mail.mailmessage();
mail.from = "test@ gmail.com";
mail.to = " test@ gmail.com ";
mail.subject = "for test";
mail.priority = system.web.mail.mailpriority.normal;
mail.bodyencoding = encoding.default;
mail.bodyformat = mailformat.html;
mail.body = "this is a email!<input type='button' value='ok'/>";
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/sendusername", "test"); //set your username here
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "****"); //set your password here
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpserver", "smtp.gmail.com");
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "587");
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
smtpmail.smtpserver = "smtp.gmail.com";
smtpmail.send(mail);
}
#endregion
方法二:使用system.net.mail命名空间(此方法测试成功)
我使用的gmail的邮箱,以及他提供免费smtp服务,之前试了好几个邮箱都不成功。gmail的smtp服务必须经过ssl加密,才可以验证成功。
#region 发送邮件:此方法可行
protected void sendsuccess()
{
system.net.mail.mailmessage message = new system.net.mail.mailmessage();
message.from = new mailaddress("test@gmail.com", "someone");//必须是提供smtp服务的邮件服务器
message.to.add(new mailaddress("test@yahoo.com.cn"));
message.subject = "测试邮件" ;
message.cc.add(new mailaddress("test@126.com"));
message.bcc.add(new mailaddress("test@126.com"));
message.isbodyhtml = true;
message.bodyencoding = system.text.encoding.utf8;
message.body = "邮件发送测试";
message.priority = system.net.mail.mailpriority.high;
smtpclient client = new smtpclient("smtp.gmail.com", 587); // 587;//gmail使用的端口
client.credentials = new system.net.networkcredential("test@gmail.com", "password"); //这里是申请的邮箱和密码
client.enablessl = true; //必须经过ssl加密
try
{
client.send(message);
response.write("邮件已经成功发送到" + message.to.tostring() + "<br>");
}
catch (exception ee)
{
response.write(ee.message + "<br>" /* + ee.innerexception.message*/ );
}
}
#endregion
邮件接收
我使用的是lumisoft.net这个开源的项目,也是从一个网友哪里看到的下载地址,然后自己看了下代码,写了个简单的接收方法。首先将代码中relrease目录下的dll文件引用到项目中。
using lumisoft.net.pop3.client;
using lumisoft.net.mail;
……
public ilist<mail_message> receivemail()
{
ilist<mail_message> maillist = new list<mail_message>();
using (pop3_client client = new pop3_client())
{
client.connect("pop.gmail.com",995,true);
client.authenticate("zw.seaman", "zw_seaman", false);
pop3_clientmessagecollection coll = client.messages;
for (int i = 0; i < coll.count; i++)
{
pop3_clientmessage message = coll[i];
mail_message mm = mail_message.parsefrombyte(coll[i].messagetobyte());
maillist.add(mm);
}
}
return maillist;
}
protected void page_load(object sender, eventargs e)
{
ilist<mail_message> maillist = new zmail.mail().receivemail();
foreach (mail_message mail in maillist)
{
stringbuilder sb = new stringbuilder();
sb.append(mail.from.tostring()).append(" 发送给 ");
sb.append(mail.to.tostring()).append("<br/>") ;
sb.append(mail.subject).append("<br/>");
sb.append(mail.bodyhtmltext).append("<hr/>");
response.write(sb.tostring());
}
}
这两个方法很容易理解,只实现了最基本的功能,如果需要可以查看源代码获取更多信息。
方法一:使用system.web.mail命名空间(此方法我测试没有成功过)
复制代码 代码如下:
#region 发送邮件:此方法失败
protected void sendfailed()
{
system.web.mail.mailmessage mail = new system.web.mail.mailmessage();
mail.from = "test@ gmail.com";
mail.to = " test@ gmail.com ";
mail.subject = "for test";
mail.priority = system.web.mail.mailpriority.normal;
mail.bodyencoding = encoding.default;
mail.bodyformat = mailformat.html;
mail.body = "this is a email!<input type='button' value='ok'/>";
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //basic authentication
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/sendusername", "test"); //set your username here
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "****"); //set your password here
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpserver", "smtp.gmail.com");
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", "587");
mail.fields.add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");
smtpmail.smtpserver = "smtp.gmail.com";
smtpmail.send(mail);
}
#endregion
方法二:使用system.net.mail命名空间(此方法测试成功)
我使用的gmail的邮箱,以及他提供免费smtp服务,之前试了好几个邮箱都不成功。gmail的smtp服务必须经过ssl加密,才可以验证成功。
复制代码 代码如下:
#region 发送邮件:此方法可行
protected void sendsuccess()
{
system.net.mail.mailmessage message = new system.net.mail.mailmessage();
message.from = new mailaddress("test@gmail.com", "someone");//必须是提供smtp服务的邮件服务器
message.to.add(new mailaddress("test@yahoo.com.cn"));
message.subject = "测试邮件" ;
message.cc.add(new mailaddress("test@126.com"));
message.bcc.add(new mailaddress("test@126.com"));
message.isbodyhtml = true;
message.bodyencoding = system.text.encoding.utf8;
message.body = "邮件发送测试";
message.priority = system.net.mail.mailpriority.high;
smtpclient client = new smtpclient("smtp.gmail.com", 587); // 587;//gmail使用的端口
client.credentials = new system.net.networkcredential("test@gmail.com", "password"); //这里是申请的邮箱和密码
client.enablessl = true; //必须经过ssl加密
try
{
client.send(message);
response.write("邮件已经成功发送到" + message.to.tostring() + "<br>");
}
catch (exception ee)
{
response.write(ee.message + "<br>" /* + ee.innerexception.message*/ );
}
}
#endregion
邮件接收
我使用的是lumisoft.net这个开源的项目,也是从一个网友哪里看到的下载地址,然后自己看了下代码,写了个简单的接收方法。首先将代码中relrease目录下的dll文件引用到项目中。
复制代码 代码如下:
using lumisoft.net.pop3.client;
using lumisoft.net.mail;
……
public ilist<mail_message> receivemail()
{
ilist<mail_message> maillist = new list<mail_message>();
using (pop3_client client = new pop3_client())
{
client.connect("pop.gmail.com",995,true);
client.authenticate("zw.seaman", "zw_seaman", false);
pop3_clientmessagecollection coll = client.messages;
for (int i = 0; i < coll.count; i++)
{
pop3_clientmessage message = coll[i];
mail_message mm = mail_message.parsefrombyte(coll[i].messagetobyte());
maillist.add(mm);
}
}
return maillist;
}
protected void page_load(object sender, eventargs e)
{
ilist<mail_message> maillist = new zmail.mail().receivemail();
foreach (mail_message mail in maillist)
{
stringbuilder sb = new stringbuilder();
sb.append(mail.from.tostring()).append(" 发送给 ");
sb.append(mail.to.tostring()).append("<br/>") ;
sb.append(mail.subject).append("<br/>");
sb.append(mail.bodyhtmltext).append("<hr/>");
response.write(sb.tostring());
}
}
这两个方法很容易理解,只实现了最基本的功能,如果需要可以查看源代码获取更多信息。