ASP.NET 如何发邮件

coolszy 2010-12-17 09:32:05
请问 ASP.NET 如何发邮件,邮件内容为我指定的一张图片?
...全文
872 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
maxall0 2010-12-17
  • 打赏
  • 举报
回复
应该已经有答案了吧,可以结贴了!
_LiuHui 2010-12-17
  • 打赏
  • 举报
回复

string smtp = "smtp.ym.163.com";
//发信人所用邮箱的服务器
string mailForm = "";
string mailPwd = "";
string mailTo = "";
string mailTitle = "";
string mailContent = "";
mailForm =;

//发件人的邮箱
mailPwd =;
//发件人的密码
mailTo = ;
//收件人信息
mailTitle = ;
//邮件标题
mailContent = ;
//邮件内容
SmtpClient client = new SmtpClient(smtp);
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential(mailForm, mailPwd);
//指定如何处理待发的邮件
client.DeliveryMethod = SmtpDeliveryMethod.Network;
MailMessage message = new MailMessage();
message.From = new MailAddress(mailForm, "《e企学》");
message.To.Add(new MailAddress(mailTo));
message.SubjectEncoding = System.Text.Encoding.GetEncoding("GB2312");
message.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");
message.Subject = mailTitle;
message.Body = mailContent;
message.Priority = MailPriority.Normal;
message.IsBodyHtml = true;
if (FileUpload1.FileName != null && !"".Equals(FileUpload1.FileName))
{
message.Attachments.Add(new Attachment(FileUpload1.PostedFile.InputStream, FileUpload1.FileName));//附件。可是是图片 等等
}
client.Send(message);
num = num + 1;
Response.Write("第" + num + "封成功发送到" + emails.Email + "邮箱<br>");

我测试过的,能用
ksr12333 2010-12-17
  • 打赏
  • 举报
回复
using System;
using System.Collections.Generic;
using System.Text;
using System.Net.Mail;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
MailMessage email = new MailMessage("yuexx9@xxx.com",xkong@xxk.com");
email.Body="asdfds";
email.SubjectEncoding = System.Text.Encoding.UTF8;
email.BodyEncoding = System.Text.Encoding.UTF8;

SmtpClient smtpClient = new SmtpClient("xxxx.com");
smtpClient.Port = 25;
smtpClient.EnableSsl = false;
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential("xxx9", "xxx9");
smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;

smtpClient.Send(email);

Console.ReadLine();

}
}
}


简单实用
maxao 2010-12-17
  • 打赏
  • 举报
回复
少了代码,用System.Net.Mail发送邮件时,加上下面的代码

static bool mailSent = false;

public static void SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
{
//String token = (string)e.UserState;
if (e.Cancelled)
mailSent = false;
if (e.Error != null)
mailSent = false;
else
mailSent = true;
}

maxao 2010-12-17
  • 打赏
  • 举报
回复

#region Jmail 邮件发送
try
{
//jmail.Message myMail = new jmail.Message();
//myMail.Silent = true;
//myMail.Logging = false;
//myMail.Charset = "UTF-8";
//myMail.ContentType = "text/html";
//myMail.AddRecipient(email, nick, "");
//myMail.From = fromEmail;
//myMail.FromName = "幸福一站 - 客服人员";
//myMail.MailServerUserName = "zhangzj@eap.com.cn";
//myMail.MailServerPassWord = fromEmailPsd;
//myMail.Subject = strSubject;
//myMail.Body = strBody;
//if (myMail.Send("mail.eap.com.cn", false))
//{
// myMail.ClearRecipients();
// return View("SendSuccess");
//}
//else
//{
// string err = myMail.ErrorMessage;
// myMail.ClearRecipients();
// return View("SendFail/?s="+err);
//}

}
catch (Exception ex)
{
return View("SendFail/?s="+ex.Message.ToString());
}
#endregion
#region System.Net.Mail 邮件发送
System.Net.Mail.MailMessage objMail = new System.Net.Mail.MailMessage();
objMail.To.Add(email);
//objMail.CC.Add(ccEmail);
objMail.Body = strBody;
objMail.BodyEncoding = Encoding.UTF8;
objMail.Subject = strSubject;
objMail.SubjectEncoding = Encoding.UTF8;
//System.Net.Mail.MailAddress addrClient = new System.Net.Mail.MailAddress(email, nick);
System.Net.Mail.MailAddress addrService = new System.Net.Mail.MailAddress(fromEmail, "幸福一站 - 客服人员", Encoding.UTF8);
objMail.From = addrService;
objMail.IsBodyHtml = true;
objMail.Priority = System.Net.Mail.MailPriority.High;
System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient();
smtp.Credentials = new System.Net.NetworkCredential(fromEmail, fromEmailPsd);
smtp.Host = "mail.eap.com.cn";
object userState = objMail;
try
{
smtp.SendAsync(objMail, userState);
smtp.SendCompleted += new System.Net.Mail.SendCompletedEventHandler(SendCompletedCallback);
if (mailSent)
{
string s = Common.StringHelper.GetPasswordForMD5(sb.ToString());
objEmp.EmpPsd = s;
objEmp.Card.CardPsd = s;
db.SubmitChanges();
return View("SendSuccess");
}
else
return View("SendFail");
}
catch (Exception ex)
{
return View("SendFail");
}
#endregion


昨天刚写的,你可以参考一下!
子夜__ 2010-12-17
  • 打赏
  • 举报
回复
hitlcyu19 2010-12-17
  • 打赏
  • 举报
回复
这个就可以的
[Quote=引用 3 楼 wuyq11 的回复:]

使用html格式发送邮件
图片也可作为附件发送

MailMessage message = new MailMessage(From, To, Subject, Body);
Attachment data = null;
if (Files != null && Files.Length > 0)
……
[/Quote]
jcx396158820 2010-12-17
  • 打赏
  • 举报
回复
已有答案
happy664618843 2010-12-17
  • 打赏
  • 举报
回复
# /// <summary>  
# /// 利用.Net自带类(SmtpClient) 发送邮件
# /// </summary>
# /// <param name="stmpserver">邮件服务器</param>
# /// <param name="username">用户名(邮箱名称)</param>
# /// <param name="pwd">密码</param>
# /// <param name="strfrom">发件人</param>
# /// <param name="strto">收件人</param>
# /// <param name="subject">主题</param>
# /// <param name="body">内容</param>
# /// <param name="Mulitaddress">发送多人 收件人的邮箱地址以逗号隔开</param>
# /// <param name="attachmentName">发送的附件名称 没有附件则为null or ""</param>
# public static void SendEmailToUser(string stmpserver, string Mulitaddress, string attachmentName, string username,string pwd,string strfrom,string strto,string subject,string body)
# {
# SmtpClient smtp = new SmtpClient();
# //发送邮件的方式
# smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
# //指定邮件服务器
# smtp.Host = stmpserver;
#
# smtp.Port = 587;//Gmail QQ stmp ssl加密使用的端口
#
# smtp.EnableSsl = true;//经过ssl加密
# //验证发件人的身份 用户名(邮件地址和密码)
# smtp.Credentials = new System.Net.NetworkCredential(username, pwd);
#
# //初始化信息(来自 接收人)
# MailMessage _mailmessage = new MailMessage(strfrom, strto);
#
# //发送多个人 接收人邮件地址以,隔开
#
# if (!string.IsNullOrEmpty(Mulitaddress))
# {
# //添加多个收件人 群发
# _mailmessage.Bcc.Add(Mulitaddress);
# }
#
#
# //如果发送失败,SMTP 服务器将发送 失败邮件通知
# _mailmessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
# //优先级
# _mailmessage.Priority = MailPriority.High;
# //发送主题
# _mailmessage.Subject = subject;
# //有附件则添加附件
# if (!string.IsNullOrEmpty(attachmentName))
# {
# System.Net.Mail.Attachment attch = new System.Net.Mail.Attachment(attachmentName);
# _mailmessage.Attachments.Add(attch);
# }
# //邮件主题编码
# _mailmessage.SubjectEncoding = System.Text.Encoding.UTF8;
# //指定发送的格式 (Html)
# _mailmessage.IsBodyHtml = true;
# //指定发送邮件的编码
# _mailmessage.BodyEncoding = System.Text.Encoding.UTF8;
# //指定邮件内容
# _mailmessage.Body = body;
#
# //发送邮件
# try
# {
# smtp.Send(_mailmessage);
# }
# catch(Exception ex) {
# throw ex;
# }
#
rwdong2199 2010-12-17
  • 打赏
  • 举报
回复

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Text;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using System.Net.Mail;

/// <summary>
///email 的摘要说明
/// </summary>
public class email
{
public email()
{
//
//TODO: 在此处添加构造函数逻辑
//
}

#region 发送电子邮件( SendE_mail )
/// <summary>
/// 发送电子邮件
/// </summary>
public void SendE_mail(string E_table)
{
SmtpClient smtp = new SmtpClient();//实例化一个SmtpClient
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;//将smtp的出站方式设为 Network
smtp.EnableSsl = false;//smtp服务器是否启用SSL加密
smtp.Host = "smtp.163.com";//指定 smtp 服务器地址
smtp.Port = 25;//指定 smtp 服务器的端口,默认是25,如果采用默认端口,可省去
smtp.Credentials = new NetworkCredential("lzzyzwyl@163.com", "qqqqqq");
MailMessage mm = new MailMessage(); //实例化一个邮件类
mm.Priority = MailPriority.High; //邮件的优先级,分为 Low, Normal, High,通常用 Normal即可
mm.From = new MailAddress("lzzyzwyl@163.com", "高端地产部", Encoding.GetEncoding(936));
//收件方看到的邮件来源;
//第一个参数是发信人邮件地址
//第二参数是发信人显示的名称
//第三个参数是 第二个参数所使用的编码,如果指定不正确,则对方收到后显示乱码
//936是简体中文的codepage值
mm.To.Add(new MailAddress("lzzyhr@126.com", "隆众置业", Encoding.GetEncoding(936)));
mm.Subject = "应聘简历"; //邮件标题
mm.SubjectEncoding = Encoding.GetEncoding(936);
// 这里非常重要,如果你的邮件标题包含中文,这里一定要指定,否则对方收到的极有可能是乱码。
// 936是简体中文的pagecode,如果是英文标题,这句可以忽略不用
mm.IsBodyHtml = true; //邮件正文是否是HTML格式
mm.BodyEncoding = Encoding.GetEncoding(936);
//邮件正文的编码, 设置不正确, 接收者会收到乱码
mm.Body = E_table;//mm.IsBodyHtml = true时,此处可以是HTML格式
//邮件正文
smtp.Send(mm); //发送邮件,如果不返回异常, 则大功告成了。
}
#endregion
}


邮件里自己指定图片的话,我知道的方法只有把图片地址指定为网络上的图片地址
ycproc 2010-12-17
  • 打赏
  • 举报
回复

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;


public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
////设置发件人信箱,及显示名字
MailAddress from = new MailAddress("czcz1024@gmail.com", "延边职大信息中心");
//设置收件人信箱,及显示名字
MailAddress to = new MailAddress(TextBox1.Text, "0503班");
//创建一个MailMessage对象
MailMessage oMail = new MailMessage(from, to);

oMail.Subject = TextBox2.Text; //邮件标题
oMail.Body = TextBox3.Text; //邮件内容

oMail.IsBodyHtml = true; //指定邮件格式,支持HTML格式
oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");//邮件采用的编码
oMail.Priority = MailPriority.High;//设置邮件的优先级为高

//发送邮件服务器
SmtpClient client = new SmtpClient();
client.Host = "smtp.gmail.com"; //指定邮件服务器
client.EnableSsl = true;
client.Port = 587;
client.Credentials = new NetworkCredential("czcz1024@gmail.com", "801024");//指定服务器邮件,及密码

//发送
try
{
client.Send(oMail); //发送邮件
Label1.Text = "恭喜你!邮件发送成功。";
}
catch
{
Label1.Text = "邮件发送失败,检查网络及信箱是否可用。";
}

oMail.Dispose(); //释放资源

TABLE1.Visible = false;
Table2.Visible = true;
}
protected void Button2_Click(object sender, EventArgs e)
{
//返回,继续发送
Response.Redirect(Request.Url.ToString());
TABLE1.Visible = true;
Table2.Visible = false;
}
}

liu2835993 2010-12-17
  • 打赏
  • 举报
回复
http://www.cnblogs.com/dlwang2002/archive/2007/10/18/928875.html
tsmoon2009 2010-12-17
  • 打赏
  • 举报
回复
1.1 system.web.mail
2.0 system.net.mail
wuyq11 2010-12-17
  • 打赏
  • 举报
回复
使用html格式发送邮件
图片也可作为附件发送

MailMessage message = new MailMessage(From, To, Subject, Body);
Attachment data = null;
if (Files != null && Files.Length > 0)
{
foreach (string file in Files)
{
data = new Attachment(file, MediaTypeNames.Application.Octet);
ContentDisposition disposition = data.ContentDisposition;
disposition.CreationDate = System.IO.File.GetCreationTime(file);
disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
disposition.ReadDate = System.IO.File.GetLastAccessTime(file);

message.Attachments.Add(data);
}
}
message.IsBodyHtml = true;
SmtpClient client = new SmtpClient(Server);
client.Credentials = new NetworkCredential(UserName, Password);
client.Send(message);
if (data != null) data.Dispose();

wyman25 2010-12-17
  • 打赏
  • 举报
回复
System.Net.Mail下就有发邮件的类支持。

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table id="TABLE1" runat="server" border="0" cellpadding="0" cellspacing="0">
<tr>
<td style="width: 393px">
收信:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
主题:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox><br />
内容:<asp:TextBox ID="TextBox3" runat="server" Height="154px" TextMode="MultiLine"
Width="336px"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="发送" OnClick="Button1_Click" /></td>
</tr>
</table>

</div>
<table id="Table2" runat="server" border="0" cellpadding="0" cellspacing="0" visible="false">
<tr>
<td align="center" style="width: 400px">
<asp:Label ID="Label1" runat="server" ForeColor="Red" Text="恭喜您,发表成功!"></asp:Label><br />
<asp:Button ID="Button2" runat="server" Text="返回" OnClick="Button2_Click" /></td>
</tr>
</table>
</form>
</body>
</html>


using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Net;
using System.Net.Mail;

public partial class sendMail : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
////设置发件人信箱,及显示名字
MailAddress from = new MailAddress("lichuan3@126.com", "J.L.C");
//设置收件人信箱,及显示名字
MailAddress to = new MailAddress(TextBox1.Text, "JLC");
//创建一个MailMessage对象
MailMessage oMail = new MailMessage(from, to);

oMail.Subject = TextBox2.Text; //邮件标题
oMail.Body = TextBox3.Text; //邮件内容

oMail.IsBodyHtml = true; //指定邮件格式,支持HTML格式
oMail.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");//邮件采用的编码
oMail.Priority = MailPriority.High;//设置邮件的优先级为高

//发送邮件服务器
SmtpClient client = new SmtpClient();
client.Host = "smtp.126.com"; //指定邮件服务器
client.Credentials = new NetworkCredential("lichuan3@126.com", "jlc3509589934");//指定服务器邮件,及密码

//发送
try
{
client.Send(oMail); //发送邮件
Label1.Text = "恭喜你!邮件发送成功。";
}
catch
{
Label1.Text = "邮件发送失败,检查网络及信箱是否可用。";
}

oMail.Dispose(); //释放资源

TABLE1.Visible = false;
Table2.Visible = true;
}
protected void Button2_Click(object sender, EventArgs e)
{
//返回,继续发送
Response.Redirect(Request.Url.ToString());
TABLE1.Visible = true;
Table2.Visible = false;
}
}
DeathSteps 2010-12-17
  • 打赏
  • 举报
回复
你可以去MSDN上看下,SYSTEM.NET命名空间下有个类专门干这事,上面还有事例。
记得要配好SMTP,具体代码我就不贴出来了。
Dylan-Wang 2010-12-17
  • 打赏
  • 举报
回复
http://blog.csdn.net/dongdongleng/archive/2010/08/28/5845124.aspx
zekelove 2010-12-17
  • 打赏
  • 举报
回复
已经有人回答了正确答案~~~~~~~
  • 打赏
  • 举报
回复
不发了接分

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧