asp.net发邮件,net 发邮件

http://www.itjxue.com  2023-01-20 00:44  来源:未知  点击次数: 

asp.net 发邮件乱码,该怎么解决

发送邮件的代码如下:using?System;

using?System.Collections.Generic;

using?System.Linq;

using?System.Web;

using?System.Web.UI;

using?System.Web.UI.WebControls;

using?jmail;

using?System.IO;

using?System.Net.Mail;

using?System.Net;

using?System.Net.Mime;

public?partial?class?getemail?:?System.Web.UI.Page

{

????protected?void?Page_Load(object?sender,?EventArgs?e)

????{

????}

????protected?void?sendEmail_Click(object?sender,?EventArgs?e)

????{

????????#region

????????SmtpClient?smtpClient?=?new?SmtpClient("smtp.gmail.com",?587);

???????

????????smtpClient.DeliveryMethod?=?SmtpDeliveryMethod.Network;

????????smtpClient.Credentials?=?new?NetworkCredential("likeshan168@gmail.com",?"likeshannihao168");

????????MailMessage?mail?=?new?MailMessage("likeshan168@gmail.com",?emailRec.Text.Trim());

????????mail.Subject?=?subject.Text.Trim();

????????mail.SubjectEncoding?=?System.Text.Encoding.UTF8;

????????mail.Body?=?emailbody.Text.Trim();

????????mail.BodyEncoding?=?System.Text.Encoding.UTF8;

????????smtpClient.EnableSsl?=?true;

????????string?attafile?=?fileUpload.PostedFile.FileName;

????????if?(!string.IsNullOrEmpty(attafile))//这里是添加附件的作用

????????{

????????????#region//方法一

????????????//string?filename?=?Path.GetFileName(attafile);

????????????//fileUpload.PostedFile.SaveAs(Server.MapPath(filename));

????????????//System.Net.Mail.Attachment?atta?=?new?System.Net.Mail.Attachment(Server.MapPath(filename));

????????????//mail.Attachments.Add(atta);

????????????#endregion

????????????#region//方法二

????????????//string?filepath?=?Server.MapPath("~/UploadFile/Files");

????????????//string?extName?=?Path.GetExtension(attafile);

????????????//if?(!Directory.Exists(filepath))

????????????//{

????????????//????Directory.CreateDirectory(filepath);

????????????//}

????????????//filepath?=?filepath?+?"\"?+?DateTime.Now.ToString("yyyyMMddhhMMssffff")?+?extName;

????????????//fileUpload.PostedFile.SaveAs(filepath);

????????????//System.Net.Mail.Attachment?atta?=?null;

????????????//if?(extName?==?".zip"?||?extName?==?".rar")

????????????//{

????????????//????atta?=?new?System.Net.Mail.Attachment(filepath,?MediaTypeNames.Application.Zip);

????????????//}

????????????//else

????????????//{

????????????//????atta?=?new?System.Net.Mail.Attachment(filepath,?MediaTypeNames.Application.Octet);

????????????//}

???????????

???????????

????????????#endregion

????????????#region//方法三

????????????string?filepath?=?Server.MapPath("~/UploadFile/Files");

????????????string?extName?=?Path.GetExtension(attafile);

????????????if?(!Directory.Exists(filepath))

????????????{

????????????????Directory.CreateDirectory(filepath);

????????????}

????????????filepath?=?filepath?+?"\"?+?DateTime.Now.ToString("yyyyMMddhhMMssffff")?+?extName;

????????????fileUpload.PostedFile.SaveAs(filepath);

????????????System.Net.Mail.Attachment?atta?=?null;

????????????if?(extName?==?".zip"?||?extName?==?".rar")

????????????{

????????????????atta?=?new?System.Net.Mail.Attachment(new?FileStream(filepath,?FileMode.Open,?FileAccess.Read),?attafile,?MediaTypeNames.Application.Zip);

????????????}

????????????else

????????????{

????????????????atta?=?new?System.Net.Mail.Attachment(new?FileStream(filepath,?FileMode.Open,?FileAccess.Read),?attafile,?MediaTypeNames.Application.Octet);

????????????}

????????????mail.Attachments.Add(atta);

????????????#endregion

????????}

????????mail.Priority?=?MailPriority.Normal;

????????try

????????{

????????????smtpClient.Send(mail);

????????????ClientScript.RegisterClientScriptBlock(Page.GetType(),?"tip1",?"alert('发送成功!')",?true);

????????}

????????catch?(Exception?ex)

????????{

????????????ClientScript.RegisterClientScriptBlock(Page.GetType(),?"tip2",?"alert('"?+?ex.Message?+?"!')",?true);

????????}

????????#endregion

????}

}

接受邮件的代码

%@?WebHandler?Language="C#"?Class="getEmail"?%

using?System;

using?System.Web;

using?jmail;

using?System.Text;

public?class?getEmail?:?IHttpHandler

{

????public?void?ProcessRequest(HttpContext?context)

????{

????????//context.Response.ContentType?=?"text/plain";

????????POP3Class?popClient?=?new?POP3Class();

????????try

????????{

????????????popClient.Connect("likeshan168@163.com",?"likeshannihao168",?"pop.163.com",?110);

????????????if?(popClient?!=?null)

????????????{

????????????????if?(popClient.Count??0)//收件数目

????????????????{

????????????????????StringBuilder?sb?=?new?StringBuilder();

????????????????????Message?msg?=?null;

????????????????????for?(int?i?=?0,?len?=?popClient.Count;?i??len;?i++)

????????????????????{

????????????????????????msg?=?popClient.Messages[i?+?1];

????????????????????????string?msgid?=?popClient.GetMessageUID(i?+?1);//029DCA8D131AA92586C8FB6CB61B627B0E00000000000001(邮件在服务器中的唯一标识)

????????????????????????int?c?=?popClient.GetLastUnreadMessage();

????????????????????????msg.ISOEncodeHeaders?=?false;

????????????????????????sb.Append("p时间:"?+?msg.Date.ToString()?+?"/p");

????????????????????????sb.Append("p发件人:"?+?msg.From?+?"/p");

????????????????????????string?substr?=?msg.Headers.GetHeader("Subject");//只要有中文就会进行base64的编码,如果是英文的话,就不会进行base64的编码

????????????????????????if?(substr.Contains("utf-8"))

????????????????????????{

????????????????????????????substr?=?DecodeStr(substr.Split('?')[3],?"utf-8");//=?utf-8?B?5pyJ5LiA5Liq5rWL6K+V?=

????????????????????????}

????????????????????????if?(substr.Contains("gbk")?||?substr.Contains("GBK")?||?substr.Contains("GB2312"))

????????????????????????{

????????????????????????????substr?=?DecodeStr(substr.Split('?')[3],?"gbk");

????????????????????????}

????????????????????????sb.Append("p主题:"?+?substr?+?"/p");

????????????????????????sb.Append("p内容:"?+?msg.Body?+?"/p");

????????????????????????int?attaCount?=?msg.Attachments.Count;

????????????????????????for?(int?j?=?0;?j??attaCount;?j++)

????????????????????????{

????????????????????????????sb.Append("p附件("?+?(j?+?1).ToString()?+?"):"?+?msg.Attachments[j].Name?+?"/p");

????????????????????????}

????????????????????}

????????????????????context.Response.Write(sb.ToString());

????????????????}

????????????}

????????}

????????catch?(Exception?ex)

????????{

????????????context.Response.Write(ex.Message);

????????}

????}

????public?bool?IsReusable

????{

????????get

????????{

????????????return?false;

????????}

????}

???

????public?static?string?base64GbkDecode(string?data)

????{

????????string?decode?=?"";

????????byte[]?bytes?=?Convert.FromBase64String(data);//先经过base64解码,在经过gbk2312解码

????????try

????????{

????????????decode?=?Encoding.GetEncoding("gb2312").GetString(bytes);

????????}

????????catch?(Exception?ex1)

????????{

????????????return?"Error?in?base64Encode"?+?ex1.Message;

????????}

????????return?decode;

????}

????public?static?string?base64Utf8Decode(string?data)

????{

????????string?result?=?"";

????????try

????????{

????????????System.Text.UTF8Encoding?encoder?=?new?System.Text.UTF8Encoding();

????????????System.Text.Decoder?utf8Decode?=?encoder.GetDecoder();//获取解码器

????????????byte[]?todecode_byte?=?Convert.FromBase64String(data);//先经过base64解码,在经过utf-8解码

????????????int?charCount?=?utf8Decode.GetCharCount(todecode_byte,?0,?todecode_byte.Length);//多少个字符

????????????char[]?decoded_char?=?new?char[charCount];//字符字符数组

????????????utf8Decode.GetChars(todecode_byte,?0,?todecode_byte.Length,?decoded_char,?0);//解码到字符数组

????????????result?=?new?String(decoded_char);

????????}

????????catch?(Exception?e)

????????{

????????????return?"Error?in?base64Encode"?+?e.Message;

????????}

????????return?result;

????}

????//base64解码

????public?static?string?DecodeStr(string?allstr,?string?code)

????{

????????//形如=?...?=是结束开始的标志

????????//=?utf-8?B?5rWL6K+V5o6l5pS25pys6YKu5Lu26L+Z5piv5Li76aKY?=

????????//=?gbk?B?suLK1L3TytXN4rK/08q8/tXiuPbKx9b3zOU=?=

????????//返回的字符串

????????string?str?=?"";

????????if?(code?==?"gbk")

????????{

????????????str?=?base64GbkDecode(allstr);

????????}

????????else?if?(code?==?"utf-8")

????????{

????????????str?=?base64Utf8Decode(allstr);

????????}

????????return?str;

????}

????//????string?subjectStr?=?popMail.Messages[i].Headers.GetHeader("Subject");

????//subjectstr?=?DecodeStr(subjectallstr.Split('?')[3],?“utf-8”);

????//再次申明下一定要用popMail.Messages[i].Headers.GetHeader(“Subject”)的形式,

????//如果原来页面用的是UTF-8编码popMail.Messages[i].Subject得到的将是直接经jmail解码后的乱码

}

ASP.NET 用JAMIL组件发布电子邮件

;?? ASP NET 网站开发邮件发送用的比较多的是用JAMIL组件 下面我来说说具体的用法 ??? 首先 我们要从网上下载Jamil dll的组件 然后添加引用using jmail 然后再本机或者服务器上注册一下??? 将jmail dll拷贝到服务器的system 目录下 开始 运行 cmd 输入regsvr jmail dll ??? protected void sendMail(String sender String senderMail String receiver String subject String content)??? {??? jmail MessageClass jmMessage = new jmail MessageClass();??? //设置字符集??? jmMessage Charset = gb ;??? //信件的contentype 缺省是 text/plain ) : 字符串如果你以HTML格式发送邮件 改为 text/HTML 即可 ??? Jmail ContentType = text/HTML ;??? //发件人邮箱地址??? jmMessage From = senderMail;??? //发件人姓名??? jmMessage FromName = sender;??? //设置主题??? jmMessage Subject = subject;??? //设置内容??? jmMessage Body = content;??? // 设置收件人邮箱??? jmMessage AddRecipient(receiver );??? // string[] arraymail = MailTo Split( ; );??? // for (int i = ; i arraymail Length; i++)??? // {??? //Jmail AddRecipientBCC(arraymail[i] );??? //? }??? // 设置登陆邮箱的用户名和密码??? jmMessage MailServerUserName = ;??? jmMessage MailServerPassWord = ****** ;??? //设置 *** tp服务器地址??? if (jmMessage Send( false))??? {??? Response Write( scriptalert( 发送成功 )/script );??? }??? else??? Response Write( scriptalert( 发送失败 )/script );??? }??? 好的OK了! lishixinzhi/Article/program/net/201311/11624

asp.net 发送邮件,我看那些网站上给别人发送邮件都是输入邮箱号码并未输入邮箱密码

怎么可能需要输入密码呢。。。呵呵

就是你使用一个邮箱(可以是个人,也可以是企业),通过

asp.net

编写的程序像客户的邮箱发送邮件。在网上看看asp.net发送邮件的代码吧!

如何用asp.net实现“给qq邮箱发送邮件”?

在标签中添加代码。

配置Web.config,在configuration标签中添加以下代码,(aaaaaaaaaa:表示发信人的邮箱号.bbbbbbbbbb:表示前面获取的授权码.端口号port:我测试25能发,而465不能发。

具体代码如下:

system.net

mailSettings

smtp deliveryMethod="Network" from="nekorz lt;1018472917@qq.comgt;"

network host="smtp.qq.com" userName="aaaaaaaaaa@qq.com" password="bbbbbbbbbb" port="25" enableSsl="true" /

/smtp

/mailSettings

/system.net

添加发送邮件代码:

MailMessage myMessage = new MailMessage();

myMessage.Subject = "Test Message";

myMessage.Body = "这是一封测试邮件.";

myMessage.To.Add(new MailAddress("aaaaaaaaaa@qq.com", "昵称"));

SmtpClient mySmtpClient = new SmtpClient();??????? try

{

mySmtpClient.Send(myMessage);

} ? ? ? ?catch (SmtpException ex)

{

}

asp.net怎么发送6万封邮件,请教高手。

1.把邮件按域名分类,如163邮箱一组、gmail的一组……

2.然后对每一组的邮件采用密送的方式,即多个帐号之间用分号

为了提高速度,同时可以使用多线程

(责任编辑:IT教学网)

更多