asp.net 发email实例 gmail html格式

前两天在做一个密码找回功能时遇到的问题

想用email形式把密码发送到用户邮箱中

 

本来想用163的邮箱,可是新申请的163邮箱据说不支持smtp,也试过

我用以前(大概06年以前)申请的163可以发送,新申请的不能发送

后来我又试了一下sina的,可是sina的在发送的时候会出现“发送失败smtp不安全全……”之类的错误,在网上找了一下说是sina不支持

最后就选择了gmail了

下面是我写的方法用gmail可以成功的发送

如果你想发送html格式只要把IsBodyHtml 属性设置成true就可以

有的在发送中文html时会出现乱码,加上BodyEncoding 设置一下就可以了

 

 

using System.Net.Mail;
using System.Net;

      MailAddress from = new MailAddress("××××@gmail.com");
        MailAddress to = new MailAddress(toemail);
        MailMessage message = new MailMessage(from,to);
        message.Subject =emailtile;//标题
        message.IsBodyHtml = true;//是否用html格式发送
        message.BodyEncoding   =   System.Text.Encoding.GetEncoding( "utf-8");//发送时的编码
        message.Body = mes;
        SmtpClient client = new SmtpClient("smtp.gmail.com");
        client.Port = 587;
        client.EnableSsl = true;
        client.Credentials = new System.Net.NetworkCredential("
××××
@gmail.com", "pwd");
     
        try
        {

 

client.Attachments.Add(new MailAttachment(inputMailAttachment.PostedFile.FileName)); //添加附件

         client.Send(message);
         return "发送成功";
        }
        catch (Exception ex)
        {
            return ex.Message;
        }

 

对了还看到一个帖子是读取一个网页然后发送到邮箱里,在读取的时候会出现乱码

我看了一下只要改一个流的编码就可以解决(改成什么自己试吧)

using System.IO;

    public static string GetHtml(string url)
    {
        WebRequest objRequest = System.Net.HttpWebRequest.Create(url);

        StreamReader sr = new StreamReader(objRequest.GetResponse().GetResponseStream(), System.Text.Encoding.GetEncoding("gb2312"));
              string result = sr.ReadToEnd();
        sr.Close();
        return result;
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值