2016-05-27 16:15:31 mojocube 阅读数 12690
  • Nginx从入门到应用

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

    3318 人正在学习 去看看 姜威

邮件发送大家都已经非常熟悉了,微软自带的System.Net.Mail也很好用,那为什么还要说呢?


QQ邮箱的SMTP以前是非SSL,用未加密的25端口,后来发送都改成SSL了,端口为465或587(实测587是连不上的)。网上查到System.Net.Mail支持Explicit SSL,但是不支持Implicit SSL。简单来说,就是System.Net.Mail不能支持像QQ邮箱这样的加密的SSL,所以我们得改一下,可以用System.Web.Mail这个比较旧的类。


虽然是过时了,但是还是可以完成我们的需求。这里登陆密码要注意:如果是一般账号,要用授权码(下面会说明设置);企业账号用登录密码,代码如下:

        System.Web.Mail.MailMessage mail = new System.Web.Mail.MailMessage();
        try
        {
            mail.To = "接收的邮箱";
            mail.From = "发送的邮箱";
            mail.Subject = "这是主题";
            mail.BodyFormat = System.Web.Mail.MailFormat.Html;
            mail.Body = "这是内容";

            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate", "1"); //身份验证
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendusername", mail.From); //邮箱登录账号,这里跟前面的发送账号一样就行
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/sendpassword", "********"); //这个密码要注意:如果是一般账号,要用授权码;企业账号用登录密码
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpserverport", 465);//端口
            mail.Fields.Add("http://schemas.microsoft.com/cdo/configuration/smtpusessl", "true");//SSL加密
            System.Web.Mail.SmtpMail.SmtpServer = "smtp.qq.com";    //企业账号用smtp.exmail.qq.com
            System.Web.Mail.SmtpMail.Send(mail);

            //邮件发送成功
        }
        catch (Exception ex)
        {
            //失败,错误信息:ex.Message;
        }


QQ邮箱要设置一下:



如果是普通账号,要生成授权码:


2019-01-11 09:48:09 weixin_43533825 阅读数 314
  • Nginx从入门到应用

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

    3318 人正在学习 去看看 姜威

C#发邮件主要涉及两个类:

  • MailMessage:邮件内容(收发人地址,内容,标题等等)
  • SmtpClient:邮件客户端(服务器,端口号,发送方式,发送动作,传入参数是MailMessage)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MailTest;
using System.Net;
using System.Net.Mail;

namespace MailTest
{
    public class Program
    {
        static void Main(string[] args)
        {
            MailMessage msg = new MailMessage();//邮件信息类
            msg.From = new MailAddress("xxx@xxx.com", "test", Encoding.UTF8);//实际发件人,显示发件人,编码
            msg.To.Add("xxx@xxx.com");//收件人,这里可以对字符串处理,循环add收件人
            msg.CC.Add("xxx@xxx.com");//抄送人,同上
            msg.Subject = "test123";//邮件主题
            msg.BodyEncoding = Encoding.UTF8;//邮件内容编码
            msg.SubjectEncoding = Encoding.UTF8;//邮件主题编码
            msg.IsBodyHtml = false;//是否是html格式,如果是,内容可以写成html样式
            //msg.IsBodyHtml = true;//是否是html格式,如果是,内容可以写成html样式
            //string filePath = "html路径";
            //System.IO.StreamReader read = new System.IO.StreamReader(filePath, Encoding.UTF8);
            //msg.Body = read.ReadToEnd();;//邮件内容
            msg.Body = "加油,你是最胖的";
            msg.Priority = MailPriority.High;//邮件优先级

            SmtpClient client = new SmtpClient();//客户端smtp(这里没有进行初始化),初始化:SmtpClient("smtp.xxx.com")
            client.DeliveryMethod = SmtpDeliveryMethod.Network;//指定邮件发送方式为网络
            client.Host = "smtp.xxx.com";//定义客户端时没有初始化,这里要指定服务器
            client.EnableSsl = false;//服务器支持安全连接,安全为true
            client.UseDefaultCredentials = false;//是否随着请求一起发
            client.Credentials = new NetworkCredential("xxx@xxx.com", "xxx");//用户名密码
            try
            {
                client.Send(msg);
                Console.WriteLine("Success");
            }
            catch (Exception)
            {
                Console.WriteLine("Failed");
            }
        }
    }
}

这里可以对邮件内容,邮件客户端进行封装,从app.config获取,过滤。

2014-04-10 14:48:00 weixin_33913332 阅读数 5
  • Nginx从入门到应用

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

    3318 人正在学习 去看看 姜威

  //简单邮件传输协议类             System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient();             client.Host = "smtp.163.com";//邮件服务器             client.Port = 25;//smtp主机上的端口号,默认是25.             client.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;//邮件发送方式:通过网络发送到SMTP服务器             client.Credentials = new System.Net.NetworkCredential("armyfai", "******");//凭证,发件人登录邮箱的用户名和密码

            //电子邮件信息类             System.Net.Mail.MailAddress fromAddress = new System.Net.Mail.MailAddress("*******@163.com", "***********");//发件人Email,在邮箱是这样显示的,[发件人:小明<panthervic@163.com>;]             System.Net.Mail.MailAddress toAddress = new System.Net.Mail.MailAddress("********@qq.com", "*******");//收件人Email,在邮箱是这样显示的, [收件人:小红<43327681@163.com>;]             System.Net.Mail.MailMessage mailMessage = new System.Net.Mail.MailMessage(fromAddress, toAddress);//创建一个电子邮件类             mailMessage.Subject = "邮件的主题";             //string filePath = Server.MapPath("/index.html");//邮件的内容可以是一个html文本.             //System.IO.StreamReader read = new System.IO.StreamReader(filePath, System.Text.Encoding.GetEncoding("GB2312"));             //string mailBody = read.ReadToEnd();

            string mailBody = "明天去吃饭!!";            // read.Close();             mailMessage.Body = mailBody;//可为html格式文本             //mailMessage.Body = "邮件的内容";//可为html格式文本             mailMessage.SubjectEncoding = System.Text.Encoding.UTF8;//邮件主题编码             mailMessage.BodyEncoding = System.Text.Encoding.GetEncoding("GB2312");//邮件内容编码             mailMessage.IsBodyHtml = true;//邮件内容是否为html格式             mailMessage.Priority = System.Net.Mail.MailPriority.High;//邮件的优先级,有三个值:高(在邮件主题前有一个红色感叹号,表示紧急),低(在邮件主题前有一个蓝色向下箭头,表示缓慢),正常(无显示).             try             {                 client.Send(mailMessage);//发送邮件                 //client.SendAsync(mailMessage, "ojb");异步方法发送邮件,不会阻塞线程.             }             catch (Exception)             {             }

转载于:https://www.cnblogs.com/armyfai/p/3656494.html

2015-12-16 14:51:43 QingHeShiJiYuan 阅读数 12033
  • Nginx从入门到应用

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

    3318 人正在学习 去看看 姜威
 今天写发送邮件的时候,用163可以正常发送,但是利用QQ发送不了邮件,后来发现是QQ邮箱的SMTP使用了SSL加密,所有必须启用SSL加密,并且指定端口就可以发送了。

        public void SendEmail()
        {
            MailMessage msg = new MailMessage();

            msg.To.Add("to@qq.com");//收件人地址
            msg.CC.Add("cc@qq.com");//抄送人地址

            msg.From = new MailAddress("from@qq.com", "Edward");//发件人邮箱,名称

            msg.Subject = "This is a test email from QQ";//邮件标题
            msg.SubjectEncoding = Encoding.UTF8;//标题格式为UTF8

            msg.Body = "this is body";//邮件内容
            msg.BodyEncoding = Encoding.UTF8;//内容格式为UTF8

            SmtpClient client = new SmtpClient();

            client.Host = "smtp.qq.com";//SMTP服务器地址
            client.Port = 587;//SMTP端口,QQ邮箱填写587

            client.EnableSsl = true;//启用SSL加密

            client.Credentials = new NetworkCredential("from@qq.com", "password");//发件人邮箱账号,密码

            client.Send(msg);//发送邮件

        }

作者:张俊营&Edward

2018-10-31 15:12:34 weixin_33785108 阅读数 35
  • Nginx从入门到应用

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。

    3318 人正在学习 去看看 姜威

使用SMTP(简单邮件传输协议)发送邮件一般都是使用25端口,而阿里云服务器为了安全是将25端口封禁的,会出现在本机测试发送邮件功能正常,但是部署到服务器上却发送失败的情况。

  解决办法是向阿里云申请解封25端口,或者更换端口,可以使用465或者587端口。

  代码如下:
///

/// 发送邮件
/// </summary>
/// <param name="bodyStr">邮件内容</param>
/// <param name="title">邮件标题</param>
/// <returns>返回结果,成功与否</returns>
public static string SendMail(string bodyStr, string title)
{
    SmtpClient smtpClient = new SmtpClient();
    smtpClient.EnableSsl = true;
    smtpClient.UseDefaultCredentials = false;
    smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
    smtpClient.Host = "smtp.qq.com";
    smtpClient.Port = 587;//改用587端口
    smtpClient.Credentials = new System.Net.NetworkCredential("000@qq.com", "abcdefg");
    //密码不是QQ密码,是qq账户设置里面的POP3/SMTP服务生成的key
    MailMessage mailMessage = new MailMessage("000@qq.com", "xxx@xxx.com");//from(发出邮箱)和to(目标邮箱)
    mailMessage.Subject = title;//邮件标题 
    mailMessage.Body = bodyStr;//邮件内容 
    mailMessage.BodyEncoding = System.Text.Encoding.Default;//正文编码  
    mailMessage.IsBodyHtml = true;//设置为HTML格式  
    mailMessage.Priority = MailPriority.High;//优先级  
    mailMessage.To.Add("xxx@xxx.com");
    mailMessage.To.Add("aaa@xxx.com");
    mailMessage.To.Add("bbb@xxx.com");
    mailMessage.To.Add("ccc@xxx.com");//可以发送给多个人
    try
    {
        smtpClient.Send(mailMessage);
        return "发送成功";
    }
    catch (Exception e)
    {
        return "发送失败" + e.InnerException.Message;
    }
}
没有更多推荐了,返回首页