c#发送邮件 邮箱不可用
2017-11-16 18:19:00 weixin_30745553 阅读数 0
 private bool SendEmail(string fileName)
        {
            MailMessage m_Mail = new MailMessage();
            m_Mail.From = new MailAddress(ConfigurationManager.AppSettings["MailFrom"]);
            string m_MailToStr = ConfigurationManager.AppSettings["MailTo"];
            string m_MailServer = ConfigurationManager.AppSettings["MailServer"];
            string[] m_MailToList = m_MailToStr.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            for (int i = 0; i < m_MailToList.Length; i++)
            {
                m_Mail.To.Add(new MailAddress(m_MailToList[i]));
            }
            m_Mail.Subject = "Pending Fund List";
            m_Mail.Body = "Please find the attachment for the Pending Funds List while it is ID, OP & Perf ready. ";
            m_Mail.IsBodyHtml = true;
            m_Mail.BodyEncoding = System.Text.Encoding.UTF8;
            Attachment m_MailAttach = null;
            if (!string.IsNullOrEmpty(fileName))
            {
                m_MailAttach = new Attachment(fileName);
                m_Mail.Attachments.Add(m_MailAttach);
            }
            SmtpClient client = new SmtpClient(m_MailServer);
            try
            {
                client.Send(m_Mail);
                if (m_MailAttach != null)
                    m_MailAttach.Dispose();
                return true;
            }
            catch (Exception e)
            {
                //_log.Error(e.Message);
                return false;
            }
        }

 

转载于:https://www.cnblogs.com/mibing/p/7845701.html

2019-01-21 17:49:00 xshagua 阅读数 29

一、概述

软件提醒功能最常用的就是邮箱了,如果使用QQ邮箱的话再搭配 QQ邮箱公众号又可以以最简单的方式实现微信提醒功能。不过在使用QQ邮箱的过程中遇到过一个大坑,按照官方说明使用的 465 端口发邮件经常出错,查了很久发现 465端口已被弃用,要替换成 587 端口~~

后文整理了一个 C# 语言发邮件的类,QQ邮箱亲测正常,其他邮箱未知。

二、程序实例

发邮件类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;

namespace SystemMonitor
{
    public static class SendEmail
    {
        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="fromEmail">发邮件地址</param>
        /// <param name="fromEmailSmtp">发邮件SMTP服务器地址</param>
        /// <param name="fromEmailSmtpPassword">发邮件SMTP服务器密码</param>
        /// <param name="receiveEmails">收件人</param>
        /// <param name="ccEmails">抄送人,没有抄送人员使用 null</param>
        /// <param name="subject">标题</param>
        /// <param name="body">内容</param>
        /// <param name="message">方法返回信息</param>
        /// <returns></returns>
        public static bool SendMail(string fromEmail,string fromEmailSmtp, string fromEmailSmtpPassword, List<string> receiveEmails, List<string> ccEmails, string subject, string body, out string message)
        {
            bool result = false;

            #region 检查配置文件是否设置

            if (String.IsNullOrEmpty(fromEmail))
            {
                message = "发件箱不能为空!设置信息:" + fromEmail;
                return result;
            }

            if (String.IsNullOrEmpty(fromEmailSmtp))
            {
                message = "发件箱SMTP服务器地址不能为空!设置信息:" + fromEmailSmtp;
                return result;
            }

            if (String.IsNullOrEmpty(fromEmailSmtpPassword))
            {
                message = "发件箱SMTP服务器密码或授权码不能为空!设置信息:" + fromEmailSmtpPassword;
                return result;
            }

            if (receiveEmails.Count <= 0)
            {
                message = "收件箱不能为空!";
                return result;
            }

            #endregion

            try
            {
                //实例化一个发送邮件类。
                MailMessage mailMessage = new MailMessage();
                //发件人邮箱地址,方法重载不同,可以根据需求自行选择。
                mailMessage.From = new MailAddress(fromEmail);
                //收件人邮箱地址。
                foreach (var email in receiveEmails)
                {
                    mailMessage.To.Add(new MailAddress(email));
                }

                if (ccEmails != null)//没有抄送人员
                {
                    //抄送人邮箱地址
                    foreach (var email in ccEmails)
                    {
                        mailMessage.CC.Add(new MailAddress(email));
                    }
                }

                //邮件标题。
                mailMessage.Subject = subject;
                mailMessage.SubjectEncoding = Encoding.UTF8;
                //邮件内容。
                mailMessage.Body = body;
                mailMessage.BodyEncoding = Encoding.UTF8;
                //是否是html格式
                mailMessage.IsBodyHtml = true;
                

                //实例化一个SmtpClient类。
                using (SmtpClient client = new SmtpClient())
                {
                    //在这里我使用的是qq邮箱,所以是smtp.qq.com,如果你使用的是126邮箱,那么就是smtp.126.com。
                    client.Host = fromEmailSmtp;
                    //使用安全加密连接。
                    client.EnableSsl = true;
                    client.Port = 587;//456 端口已经被弃用了,参考:https://stackoverflow.com/questions/20228644/smtpexception-unable-to-read-data-from-the-transport-connection-net-io-connect
                    //不和请求一块发送。
                    client.UseDefaultCredentials = false;
                    //验证发件人身份(发件人的邮箱,邮箱里的生成授权码);
                    client.Credentials = new NetworkCredential(fromEmail, fromEmailSmtpPassword);
                    //发送
                    client.Send(mailMessage);
                }
            }
            catch (Exception ex)
            {
                message = "发送邮件出现异常!\n输入参数:" + String.Join(",", receiveEmails) + " | " + subject + "\n详细异常信息:" + ex.ToString();
                return result;
            }

            result = true;
            message = DateTime.Now.ToString() + " 发送邮件成功!";
            return result;
        }
    }
}

调用方式:<br />**

SendEmail.SendMail("xxxxx@qq.com", "smtp.qq.com", "授权码",new List<string>() {"fdfsfsf@qq.com", "sfsfsfs@foxmail.com"}, null,"异常说明!" , "", out message);

三、获取QQ邮箱授权码

在“设置”→ “账户”中开启 SMTP 服务:

image.png

image.png

发送短信获取授权码:

image.png

image.png

四、参考文章

【1】SmtpException: Unable to read data from the transport connection: net_io_connectionclosed


本文为原创文章,转载请注明出处!欢迎关注任前程博客 https://renqiancheng.com,第一时间看后续精彩文章。

2009-04-15 17:49:00 weixin_34133829 阅读数 2

Godaddy邮箱C#发送邮件设置

SMTP服务器名称:smtpout.secureserver.net

SMTP服务器端口:3535/80

帐户名:xxx@xxxxx.com
密码:xxxxxx

范例如下

SmtpClient smtp = new SmtpClient();
smtp.DeliveryMethod = SmtpDeliveryMethod.Network; //电子邮件通过网络发送到 SMTP 服务器
smtp.Host = “smtpout.secureserver.net”;
smtp.Credentials = new System.Net.NetworkCredential("帐户名", "密码"); 
smtp.Port = 80;//端口

 

很多人的邮件发送不了,是因为Godaddy默认的smtp端口并不是25,而是80或3535。

如果你的邮件也发送不了,请检查端口的设置是否正确。

 

Godaddy邮箱设置outlook或foxmail邮件设置

POP3服务器:       pop.secureserver.net
SMTP服务器名称:smtpout.secureserver.net
帐户名:xxx@xxxxx.com
密码:xxxxxx
我的服务器要求身份验证,勾选上。

 

很多人的邮件发送不了,是因为Godaddy默认的smtp端口并不是25,而是80或3535。

如果你的邮件也发送不了,请检查端口的设置是否正确。

 

有关Godaddy邮件设置的详细文章,
请看这里:http://products.secureserver.net/email/email_outlookexpress.htm

 

转载于:https://www.cnblogs.com/amwson/archive/2009/04/15/1436628.html

2011-06-03 11:13:00 jhycjhyc 阅读数 3262

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net.Mail;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            sendSMforGMail("ouyjpem@gmail.com", "akdkdls", "李明", "测试一下", "近来好吗?", "13577221209@139.com");
        }


        private string sendSMforGMail(string sender, string pwd, string name, string SMtitle, string SMContent, string receiver)
        {
            //范例 sendSMforGMail("liming@gmail.con","李明","测试一下","近来好吗?","limei@163.com")
            System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage();
            // msg.To.Add(phonenumber + "@139.com");
            msg.To.Add(receiver);
            //msg.To.Add("");
            //msg.To.Add("b@b.com");
            /*
             * msg.To.Add("b@b.com");
             * msg.To.Add("b@b.com");
             * msg.To.Add("b@b.com");可以发送给多人
             */
            //msg.CC.Add("抄送地址");
            /*
             * msg.CC.Add("c@c.com");
             * msg.CC.Add("c@c.com");可以抄送给多人
             */
            msg.From = new MailAddress(sender, name, System.Text.Encoding.UTF8);
            /* 上面3个参数分别是发件人地址(可以随便写),发件人姓名,编码*/
            msg.Subject = SMtitle;//邮件标题            
            msg.SubjectEncoding = System.Text.Encoding.UTF8;//邮件标题编码
            msg.Body = SMContent;//邮件内容
            msg.BodyEncoding = System.Text.Encoding.UTF8;//邮件内容编码
            msg.IsBodyHtml = false;//是否是HTML邮件
            // msg.Priority = MailPriority.High;//邮件优先级

            SmtpClient client = new SmtpClient();
            client.Credentials = new System.Net.NetworkCredential(sender, pwd);
            //上述写你的邮箱和密码
            client.Port = 587;//gmail 使用的端口
            client.Host = "smtp.gmail.com";
            client.EnableSsl = true;//经过ssl加密
            object userState = msg;
            try
            {
                //client.SendAsync(msg, userState);
                client.Send(msg);
                //简单一点儿可以client.Send(msg);
                // MessageBox.Show("发送成功");
                //textBox2.Text = textBox2.Text + DateTime.Now.ToString() + " Have sent a message!" + "/r/n";
                return "1";
            }
            catch (System.Net.Mail.SmtpException ex)
            {
                MessageBox.Show(ex.Message, "发送邮件出错");
                // textBox2.Text = textBox2.Text + DateTime.Now.ToString() + " " + ex.Message + "/r/n";
                return "0";
            }
        }
    }
}

2019-01-21 17:49:00 weixin_33963594 阅读数 25

一、概述

软件提醒功能最常用的就是邮箱了,如果使用QQ邮箱的话再搭配 QQ邮箱公众号又可以以最简单的方式实现微信提醒功能。不过在使用QQ邮箱的过程中遇到过一个大坑,按照官方说明使用的 465 端口发邮件经常出错,查了很久发现 465端口已被弃用,要替换成 587 端口~~

后文整理了一个 C# 语言发邮件的类,QQ邮箱亲测正常,其他邮箱未知。

二、程序实例

发邮件类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Text;
using System.Threading.Tasks;

namespace SystemMonitor
{
    public static class SendEmail
    {
        /// <summary>
        /// 发送邮件
        /// </summary>
        /// <param name="fromEmail">发邮件地址</param>
        /// <param name="fromEmailSmtp">发邮件SMTP服务器地址</param>
        /// <param name="fromEmailSmtpPassword">发邮件SMTP服务器密码</param>
        /// <param name="receiveEmails">收件人</param>
        /// <param name="ccEmails">抄送人,没有抄送人员使用 null</param>
        /// <param name="subject">标题</param>
        /// <param name="body">内容</param>
        /// <param name="message">方法返回信息</param>
        /// <returns></returns>
        public static bool SendMail(string fromEmail,string fromEmailSmtp, string fromEmailSmtpPassword, List<string> receiveEmails, List<string> ccEmails, string subject, string body, out string message)
        {
            bool result = false;

            #region 检查配置文件是否设置

            if (String.IsNullOrEmpty(fromEmail))
            {
                message = "发件箱不能为空!设置信息:" + fromEmail;
                return result;
            }

            if (String.IsNullOrEmpty(fromEmailSmtp))
            {
                message = "发件箱SMTP服务器地址不能为空!设置信息:" + fromEmailSmtp;
                return result;
            }

            if (String.IsNullOrEmpty(fromEmailSmtpPassword))
            {
                message = "发件箱SMTP服务器密码或授权码不能为空!设置信息:" + fromEmailSmtpPassword;
                return result;
            }

            if (receiveEmails.Count <= 0)
            {
                message = "收件箱不能为空!";
                return result;
            }

            #endregion

            try
            {
                //实例化一个发送邮件类。
                MailMessage mailMessage = new MailMessage();
                //发件人邮箱地址,方法重载不同,可以根据需求自行选择。
                mailMessage.From = new MailAddress(fromEmail);
                //收件人邮箱地址。
                foreach (var email in receiveEmails)
                {
                    mailMessage.To.Add(new MailAddress(email));
                }

                if (ccEmails != null)//没有抄送人员
                {
                    //抄送人邮箱地址
                    foreach (var email in ccEmails)
                    {
                        mailMessage.CC.Add(new MailAddress(email));
                    }
                }

                //邮件标题。
                mailMessage.Subject = subject;
                mailMessage.SubjectEncoding = Encoding.UTF8;
                //邮件内容。
                mailMessage.Body = body;
                mailMessage.BodyEncoding = Encoding.UTF8;
                //是否是html格式
                mailMessage.IsBodyHtml = true;
                

                //实例化一个SmtpClient类。
                using (SmtpClient client = new SmtpClient())
                {
                    //在这里我使用的是qq邮箱,所以是smtp.qq.com,如果你使用的是126邮箱,那么就是smtp.126.com。
                    client.Host = fromEmailSmtp;
                    //使用安全加密连接。
                    client.EnableSsl = true;
                    client.Port = 587;//456 端口已经被弃用了,参考:https://stackoverflow.com/questions/20228644/smtpexception-unable-to-read-data-from-the-transport-connection-net-io-connect
                    //不和请求一块发送。
                    client.UseDefaultCredentials = false;
                    //验证发件人身份(发件人的邮箱,邮箱里的生成授权码);
                    client.Credentials = new NetworkCredential(fromEmail, fromEmailSmtpPassword);
                    //发送
                    client.Send(mailMessage);
                }
            }
            catch (Exception ex)
            {
                message = "发送邮件出现异常!\n输入参数:" + String.Join(",", receiveEmails) + " | " + subject + "\n详细异常信息:" + ex.ToString();
                return result;
            }

            result = true;
            message = DateTime.Now.ToString() + " 发送邮件成功!";
            return result;
        }
    }
}

调用方式:<br />**

SendEmail.SendMail("xxxxx@qq.com", "smtp.qq.com", "授权码",new List<string>() {"fdfsfsf@qq.com", "sfsfsfs@foxmail.com"}, null,"异常说明!" , "", out message);

三、获取QQ邮箱授权码

在“设置”→ “账户”中开启 SMTP 服务:

76130-08e943e6705e1314.png
76130-2b0bb5a4fbe51a01.png

发送短信获取授权码:

76130-c39b383ac45a1779.png
76130-c24d14ba4cfb98cf.png

四、参考文章

【1】SmtpException: Unable to read data from the transport connection: net_io_connectionclosed


本文为原创文章,转载请注明出处!欢迎关注任前程博客 https://renqiancheng.com,第一时间看后续精彩文章。

没有更多推荐了,返回首页