首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

邮件发送,该怎么处理

2012-06-07 
邮件发送,各位大虾们,小弟现在遇到一难题。本人做了一个小型的考试网站,考生考完试点击提交答卷的时候要把

邮件发送,
各位大虾们,小弟现在遇到一难题。
  本人做了一个小型的考试网站,
  考生考完试点击提交答卷的时候要把他的答卷(.aspx里面有图片等)以邮件的形式发送给他,
  我应该怎么做呢,把一个aspx界面当作是一个邮件发送到对方邮件中去呢。??程序中怎么写??
 495362746@qq.com



[解决办法]
图片作为附件发送

C# 发送邮件的代码网上很多
[解决办法]
aspx.net 内置的也有发邮件的...可以直接用...不过要新建服务sms
[解决办法]

C# code
MailAddress from = new MailAddress("070812041@163.com", "东东");          //邮件的发件人,后面为显示的名字            MailMessage mail = new MailMessage();                       mail.Subject = txtSubject.Text;                                            //设置邮件的标题            mail.From = from;                                                          //设置邮件的发件人                        //多人发送            string address = "";            string displayName = "";                     string[] mailNames = (txtMailTo.Text + ";").Split(';');            foreach (string name in mailNames)            {                if (name != string.Empty)                {                    if (name.IndexOf('<') > 0)                    {                        displayName = name.Substring(0, name.IndexOf('<'));                        address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');                    }                    else                    {                        displayName = string.Empty;                        address = name.Substring(name.IndexOf('<') + 1).Replace('>', ' ');                    }                 //   mail.To.Add(new MailAddress(address, displayName));                    mail.CC.Add(new MailAddress(address, displayName));                //收件人地址的集合                }                       }                        mail.Body = txtBody.Text;                                                  //设置邮件的内容                        mail.BodyEncoding = System.Text.Encoding.UTF8;                             //设置邮件的格式            mail.IsBodyHtml = true;                                                    //设置正文是否为HTML格式            mail.Priority = MailPriority.Normal;                                       //设置邮件的发送级别            if (txtMailTo.Text != "")            {            string fileName = txtUpFile.Text.Trim();                                   //设置邮件的附件            fileName = fileName.Substring(fileName.LastIndexOf("\\") + 1);             //取文件名            mail.Attachments.Add(new Attachment(fileName));                            //添加附件到邮件当中            }            mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnSuccess;            SmtpClient client = new SmtpClient();            client.Host = "smtp.163.com";                                              //设置SMTP的地址,注意:是什么邮箱就应该用相对应的地址                      client.Port = 25;                                                          //设置用于 SMTP 事务的端口,默认的是 25            client.UseDefaultCredentials = false;                   client.Credentials = new System.Net.NetworkCredential("*****", "*****");//我的邮箱的登录名和密码。就是发送方的用户名和密码,要对应上面的Host地址            client.DeliveryMethod = SmtpDeliveryMethod.Network;                        client.Send(mail);                                                         //邮件的正式发送            MessageBox.Show("发送成功");                            }        private void btn_send_Click(object sender, EventArgs e)        {            sendMail();        }
[解决办法]
图片也可作为附件发送
 
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();


[解决办法]
楼主是想将整个页面作为附件发送吧!!!
我建议你可以将整个页面导入到Excel中 存放在本地 然后上传发送 如果这样行 我有代码可以给你借鉴一下
[解决办法]
public void HtmlToMht(string src, string dst)
{
CDO.Message msg = new CDO.MessageClass();
CDO.Configuration c = new CDO.ConfigurationClass();
msg.Configuration = c;
msg.CreateMHTMLBody(src, CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
ADODB.Stream stream = msg.GetStream();
stream.SaveToFile(dst, ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
}

需要添加引用CDO.

把页面直接保存成图片,然后做附件发,

或者用HttpWebRequest 获取页面,不过需要先把答案保存,再读到页面上,页面才会有答案。

获取后,当邮件正文发就行了。

[解决办法]
我觉得难点不在发邮件,而在于将页面截图,并作为附件发送。

不过我觉得还是在Code behind中取得页面field的值,并组合成邮件的正文发送。这样简单些。
[解决办法]

下载DEMO

C# code
public static void Send()    {        SmtpClient client = new SmtpClient();        client.DeliveryMethod = SmtpDeliveryMethod.Network;        client.EnableSsl = false;        client.Host = "smtp.163.com"; //可以配置成其他邮件服务器        client.Port = 25;        client.Credentials = new NetworkCredential("发件人邮件帐号", "邮箱密码");        MailMessage mm = new MailMessage();        mm.Priority = MailPriority.High;        mm.From = new MailAddress("发件人邮件帐号");        mm.Sender = new MailAddress("发件人邮件帐号");        mm.To.Add(new MailAddress("收件人邮件帐号"));        mm.Subject = "到期提醒!";        StringBuilder sb = new StringBuilder();        sb.AppendLine("到期提醒!");        sb.AppendLine("请登录人力资源系统及时处理即将到期的合同");        sb.AppendLine(DateTime.Now.ToShortDateString());        sb.AppendLine("人力资源系统管理员");        mm.Body = sb.ToString();        mm.IsBodyHtml = true;        // client.DeliveryMethod = SmtpDeliveryMethod.Network;        try        {            client.Send(mm);        }        catch (Exception ex)        {            throw ex;        }    } 

热点排行