Index.html:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>邮箱发送</title>
<script src="script/jquery-1.11.2.min.js"></script>
<script src="script/jquery.form.min.js"></script>
</head>
<body>
邮箱内容:<input type="text" id="content" name="content" />
<input type="button" value="发送" onclick="Send()" />
<br />
</body>
</html>
submit_ajax.ashx:
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace Sendemail
{
/// <summary>
/// submit_ajax 的摘要说明
/// </summary>
public class submit_ajax : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string action = context.Request["action"];
switch (action)
{
case "sendEmail":
sendEmail(context);
break;
}
}
#region 发送邮箱============================================
private void sendEmail(HttpContext context)
{
string content = context.Request["content"];
JObject json = new JObject();
/// <summary>
/// 发送电子邮件
/// </summary>
/// <param name="smtpserver">SMTP服务器</param>
/// <param name="port">端口号</param>
/// <param name="enablessl">是否启用SSL加密</param>
/// <param name="userName">登录帐号</param>
/// <param name="pwd">登录密码</param>
/// <param name="nickName">发件人昵称</param>
/// <param name="strfrom">发件人</param>
/// <param name="strto">收件人</param>
/// <param name="subj">主题</param>
/// <param name="bodys">内容</param>
/// <param name="filepath">附件绝对地址</param>
string smtpserver = "smtp.qq.com";
int port = 25;
int enablessl = 1;
string userName = "";
string pwd = "";
string nickName = "邮箱发送";
string strfrom = "";
string strto = "";
string subj = "主题";
string bodys = "内容" + content;
string filepath = "/upload/fujian.png";
try
{
//不含附件
Mail.sendMail(smtpserver,
enablessl,
userName,
pwd,
nickName,
strfrom,
strto,
port,
subj, bodys);
//含附件
Mail.sendMail(smtpserver,
enablessl,
userName,
pwd,
nickName,
strfrom,
strto,
port,
subj, bodys, filepath);
}
catch
{
json["msg"] = "发送失败";
context.Response.Write(json.ToString());
return;
}
json["msg"] = "发送成功";
context.Response.Write(json.ToString());
return;
}
#endregion
public bool IsReusable
{
get
{
return false;
}
}
}
}
Mail.cs:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Mail;
using System.Net.Mime;
using System.Web;
namespace Sendemail
{
public class Mail
{
#region 发送电子邮件
/// <summary>
/// 发送电子邮件
/// </summary>
/// <param name="smtpserver">SMTP服务器</param>
/// <param name="port">端口号</param>
/// <param name="enablessl">是否启用SSL加密</param>
/// <param name="userName">登录帐号</param>
/// <param name="pwd">登录密码</param>
/// <param name="nickName">发件人昵称</param>
/// <param name="strfrom">发件人</param>
/// <param name="strto">收件人</param>
/// <param name="subj">主题</param>
/// <param name="bodys">内容</param>
public static void sendMail(string smtpserver, int enablessl, string userName, string pwd, string nickName, string strfrom, string strto, int port, string subj, string bodys)
{
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtpserver;//指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(userName, pwd);//用户名和密码
if (enablessl == 1)
{
_smtpClient.EnableSsl = true;
}
_smtpClient.Port = port;
MailAddress _from = new MailAddress(strfrom, nickName);
MailAddress _to = new MailAddress(strto);
MailMessage _mailMessage = new MailMessage(_from, _to);
_mailMessage.Subject = subj;//主题
_mailMessage.Body = bodys;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.Normal;//优先级
_smtpClient.Send(_mailMessage);
}
#endregion
#region 发送电子邮件含附件
/// <summary>
/// 发送电子邮件
/// </summary>
/// <param name="smtpserver">SMTP服务器</param>
/// <param name="port">端口号</param>
/// <param name="enablessl">是否启用SSL加密</param>
/// <param name="userName">登录帐号</param>
/// <param name="pwd">登录密码</param>
/// <param name="nickName">发件人昵称</param>
/// <param name="strfrom">发件人</param>
/// <param name="strto">收件人</param>
/// <param name="subj">主题</param>
/// <param name="bodys">内容</param>
/// <param name="filepath">附件绝对地址</param>
public static void sendMail(string smtpserver, int enablessl, string userName, string pwd, string nickName, string strfrom, string strto, int port, string subj, string bodys, string filepath)
{
SmtpClient _smtpClient = new SmtpClient();
_smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指定电子邮件发送方式
_smtpClient.Host = smtpserver;//指定SMTP服务器
_smtpClient.Credentials = new System.Net.NetworkCredential(userName, pwd);//用户名和密码
if (enablessl == 1)
{
_smtpClient.EnableSsl = true;
}
_smtpClient.Port = port;
MailAddress _from = new MailAddress(strfrom, nickName);
MailAddress _to = new MailAddress(strto);
MailMessage _mailMessage = new MailMessage(_from, _to);
_mailMessage.Subject = subj;//主题
_mailMessage.Body = bodys;//内容
_mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码
_mailMessage.IsBodyHtml = true;//设置为HTML格式
_mailMessage.Priority = MailPriority.Normal;//优先级
//附件
string[] paths = filepath.Split(',');
foreach (string item in paths)
{
if (string.IsNullOrEmpty(item))
{
continue;
}
//此路径根据你项目文件的位置而定
string temp = @"C:\Users\Administrator\Desktop\Sendemail\Sendemail" + item;
FileStream file = new FileStream(temp, FileMode.Open, FileAccess.Read);
string name = Path.GetFileName(file.Name);
_mailMessage.Attachments.Add(new Attachment(file, name, MediaTypeNames.Application.Octet));
}
_smtpClient.Send(_mailMessage);
}
#endregion
}
}
整个项目的文件目录: