简单的发送邮件功能 潜龙勿用

在互联网竞争日趋激烈的今天,邮箱成为了每位工作人士必不可少的一样辅助工具,我呢,每日都要发送邮件,对邮件的发送当然其原理也很简单,下面简单的实现以下发送的代码:

首先,设计了一下界面:

<div >
<table>
<tr><td>收件人:</td><td><input type="text" id="ReceveEmail" /></td></tr>
<tr><td>主题:</td><td><input type="text" id="Themes" /></td></tr>
<tr><td>附件:</td><td><input type="file" id="attach" name="attach" runat="server" /></td></tr>
<tr><td>正文:</td><td><textarea cols="40" rows="10" id="Content"></textarea></td></tr>
</table>
<input type="button" id="SendEmail" value="发送" onclick="SendEmail()"/><span id="Send" style="display:none" >Sending.....</span>
</div>

这里呢,我是用Ajax来实现的,但是有一个问题没能解决,就是在Firefox下邮件的附件不能进行发送了很遗憾,希望各位大虾多多指教,当点击"发送"时,解释执行以下这段脚本

<script type="text/javascript" language="javascript">
function SendEmail() {
var ReceveEmail = $("#ReceveEmail").val();

var Themes = $("#Themes").val();
var Content = $("#Content").val();
var Attach ='<%=FilePath %>';
if (navigator.userAgent.indexOf("MSIE") != -1) {
Attach
= document.getElementById("attach").value;
}
else if (navigator.userAgent.indexOf("Firefox") != -1 || navigator.userAgent.indexOf("Mozilla") != -1) {
try {
                netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
            }
            catch (e) {
                 alert('此操作被浏览器拒绝!请在浏览器地址栏输入"about:config"并回车然后将[signed.applets.codebase_principal_support]设置为"true"');
                return;
            }
            var  Attach= document.getElementById("attach").value;
//          var Attach = document.getElementById("attach").files[0].getAsDataURL();
            var file = Components.classes["@mozilla.org/file/local;1"]
        .createInstance(Components.interfaces.nsILocalFile);
            try {
                // Back slashes for windows
                file.initWithPath(Attach);
            }
            catch (e) {
                if (e.result != Components.results.NS_ERROR_FILE_UNRECOGNIZED_PATH) throw e;
                alert(' 无法加载文件 ');
                return;
            }
}
if (ReceveEmail != "" || Themes != "" || Content != "") {
$.ajax({
type:
"POST",
url:
"../AjaxPro.aspx?_Action=SendEmail",
data: {
"ReceveEmail": escape(ReceveEmail), "Themes": Themes, "Content": Content, "Attach": Attach },
beforeSend:
function () {
$(
"#Send").show();
},
success:
function (Msg) {
if (Msg) {
$(
"#Send").hide();
alert(Msg);
}
}

});
}

}


</script>

将值post到了"../AjaxPro.aspx?_Action=SendEmail"这个页面进行处理

///[code=csharp]
///[WebMethod]
/// <summary>
/// 简单的邮箱发送功能
/// </summary>
public void SendEmail()
{
string ReceviceEmail=Request["ReceveEmail"].Trim().ToString();
string Themes=Request["Themes"].Trim().ToString();
string Content=Request["Content"].Trim().ToString();
string Attach = Request["Attach"].Trim().ToString();
string[] ToEmail=Regex.Split(ReceviceEmail,";",RegexOptions.IgnoreCase);
string DisplayName = "";
string Addre = "";
MailMessage message
= new MailMessage();
//这里是对邮件群发的设置
foreach (string Name in ToEmail)
{
if (Name != string.Empty)
{
if (Name.IndexOf("<") > 0)
{
DisplayName
= Name.Substring(0, Name.IndexOf("<"));
Addre
= Name.Substring((Name.IndexOf("<") + 1)).Replace(">", "");

}
else
{
DisplayName
= string.Empty;
Addre
= Name.Substring((Name.IndexOf("<") + 1)).Replace(">", "");
}
message.To.Add(
new MailAddress(Addre,DisplayName));
}
}

message.Attachments.Add(
new Attachment(Attach));
//设置邮箱的主题
message.Subject = Themes;
//设置邮箱主题内容的编码格式
message.SubjectEncoding = Encoding.Default;
//设置邮件的正文
message.Body = Content;
//设置邮件正文格式为默认的
message.BodyEncoding = Encoding.Default;
//设置邮件正文格式为UTF-8的
//message.BodyEncoding = System.Text.Encoding.UTF8;
message.IsBodyHtml = true;
//邮件的发件人的地址
message.From=new MailAddress("345686955@qq.com","孙旭柱");
//设置此邮件的优先级
message.Priority = MailPriority.Normal;

//这里设置qq的SMTP服务器地址
SmtpClient client = new SmtpClient();
client.Host
= "smtp.qq.com";
//设置端口号
client.Port = 25;
client.UseDefaultCredentials
= false;
//获取或设置用于验证发件人身份的凭据
client.Credentials = new System.Net.NetworkCredential("345686955@qq.com", "!sun3456");
//制定如何处理待发的邮件
client.DeliveryMethod = SmtpDeliveryMethod.Network;
//发送邮件
client.Send(message);
Msg
= "发送成功";



}

就这样简单的邮箱发送功能就实现了,在火狐下要进行设置,在地址栏中输入about:confing然后按提示进行设置就可以了,当中对邮箱没有进行格式的验证,以及为空的验证,这里设置的是qqde SMTP的服务器地址,如有哪里写的不妥之处请来信指教

谢谢!

原文地址:https://www.cnblogs.com/dragonbattlesun/p/2027704.html