c#发送邮件

第一步:

封装一个发送邮件的类:EmailHelper.cs 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net; 
using System.Net.Mail;
using System.Net.Mime;
using System.Configuration;
using System.Threading;

namespace Utilities {
    public class EmailHelper {
        private static MailMessage mailMessage;
        private static SmtpClient smtpClient;
        
        /// <summary>
        /// 多线程发送邮件
        /// </summary>
        /// <param name="emailto">目标地址</param>
        /// <param name="title">邮件标题</param>
        /// <param name="body">邮件内容</param>
        public static void SendThread(string emailto, string title, string body)
        {
            ParameterizedThreadStart ParStart = new ParameterizedThreadStart(ThreadMethod_EmailTo);
            Thread myThread = new Thread(ParStart);
            object o = title + "|" + body + "|" + emailto;
            myThread.Start(o);
        }
        private static void ThreadMethod_EmailTo(object ParObject)
        {
            try
            {
                string emailto = "aaaa@163.com";//邮箱地址
                string pwd = "xxxxxxxx";//邮箱密码
                string host = "smtp.163.com";
                string[] str = ParObject.ToString().Split('|');
                string[] strArray = str[2].Split(',');
                foreach (string s in strArray)
                {
                   
                    mailMessage = new MailMessage();
                    mailMessage.To.Add(s);
                    mailMessage.From = new System.Net.Mail.MailAddress(emailto);
                    mailMessage.Subject = str[0];
                    mailMessage.Body = str[1];
                    mailMessage.IsBodyHtml = true;
                    mailMessage.BodyEncoding = System.Text.Encoding.UTF8;
                    mailMessage.Priority = System.Net.Mail.MailPriority.Normal;

                    smtpClient = new SmtpClient();
                    smtpClient.UseDefaultCredentials = true;
                    smtpClient.Credentials = new System.Net.NetworkCredential(mailMessage.From.Address, pwd);//设置发件人身份的票据  
                    smtpClient.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
                    smtpClient.Host = host;
                    smtpClient.Send(mailMessage);
                }
            }
            catch { }
        }

    }
}

如果要发送多个收件地址,需要将收件地址用逗号(,)分隔.

第二步:

调用发送邮件方法:

   EmailHelper.SendThread("123456@163.com", "邮件标题", 邮件内容);

第三步:

对发件邮箱做一个配置,例如163邮箱:

1.开启这两个服务 

 

2.如果不记得客户端授权密码,需要重置一下(此密码就是发送邮件代码中要配置的邮箱密码,此密码不是邮箱的登录密码)

重置完成后将重置好的客户端授权密码配置到代码中:

这时候去发送一封邮件试试吧!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个使用C#编写的控制台程序,用于发送邮件: ```csharp using System; using System.Net; using System.Net.Mail; class Program { static void Main(string[] args) { // 设置邮件服务器 string smtpServer = args[0]; int smtpPort = 25; SmtpClient client = new SmtpClient(smtpServer, smtpPort); // 设置发件人 string from = args[1]; string displayName = args[2]; MailAddress fromAddress = new MailAddress(from, displayName); // 设置收件人 string to = args[3]; MailAddress toAddress = new MailAddress(to); // 创建邮件对象 MailMessage message = new MailMessage(fromAddress, toAddress); // 设置抄送和密送 if (args.Length > 4) { string[] cc = args[4].Split(','); foreach (string c in cc) { message.CC.Add(c); } } if (args.Length > 5) { string[] bcc = args[5].Split(','); foreach (string b in bcc) { message.Bcc.Add(b); } } // 设置主题和内容 message.Subject = args[6]; message.Body = args[7]; // 添加附件 if (args.Length > 8) { string[] attachments = args[8].Split(','); foreach (string attachment in attachments) { Attachment file = new Attachment(attachment); message.Attachments.Add(file); } } // 发送邮件 client.Send(message); Console.WriteLine("邮件发送成功!"); } } ``` 在命令行中输入以下命令即可发送邮件: ``` SendMail 邮件服务器IP 发件人 显示名称 收件人 抄送 密送 主题 内容 文件 ``` 其中,邮件服务器IP、发件人、显示名称、收件人、主题和内容是必填项,抄送、密送和文件是可选项。如果有多个收件人、抄送或密送,可以用逗号分隔。如果有多个文件,也可以用逗号分隔。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值