C#实现发送邮件

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

namespace TestForm
{
    class Email
    {
        string smtpHost = string.Empty;
        string Sendmailaddress = string.Empty;
        string Sendpassword = string.Empty;
        string SendDisplayname = string.Empty;
        string Recevivemailaddress = string.Empty;
        string ReceviveDisplayname = string.Empty;

        /// <summary>
        /// 
        /// </summary>
        /// <param name="host">主机号</param>
        /// <param name="sendmailaddress">发送人邮箱地址</param>
        /// <param name="sendpassword">发送邮箱密码</param>
        /// <param name="sendDisplayname">发送人显示名称</param>
        /// <param name="recevivemailaddress">接收人邮箱地址</param>
        /// <param name="receviveDisplayname">接收人显示名称</param>
        public Email(string host, string sendmailaddress, string sendpassword, string sendDisplayname, string recevivemailaddress, string receviveDisplayname) 
        {
            smtpHost = host;
            Sendmailaddress = sendmailaddress;
            Sendpassword = sendpassword;
            SendDisplayname = sendDisplayname;
            Recevivemailaddress = recevivemailaddress;
            ReceviveDisplayname = receviveDisplayname;
        }

        /// <summary>
        /// 发送邮件功能
        /// </summary>
        /// <param name="mailsubject">邮件标题</param>
        /// <param name="mailbody">邮件主要内容</param>
        /// <param name="isadddocument">是否添加附件</param>
        /// <param name="documentpath">添加附件的文件路径列表</param>
        /// <returns></returns>
        public bool Sendmail(string mailsubject, string mailbody, bool isadddocument, List<string> documentpath)
        {
            bool sendstatus = false;
            try 
            {
                System.Net.Mail.SmtpClient client = new System.Net.Mail.SmtpClient(smtpHost);  //确定smtp服务器地址。实例化一个Smtp客户端
                MailAddress from = new MailAddress(Sendmailaddress, SendDisplayname, Encoding.UTF8);//构造一个发件人地址对象
                MailAddress to = new MailAddress(Recevivemailaddress, ReceviveDisplayname, Encoding.UTF8);//构造一个收件人地址对象                
                MailMessage message = new MailMessage(from, to);//构造一个Email的Message对象

                message.Subject = mailsubject;
                message.SubjectEncoding = Encoding.UTF8;
                message.Body = mailbody;
                message.BodyEncoding = Encoding.UTF8;

                //设置邮件的信息
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                message.BodyEncoding = System.Text.Encoding.UTF8;
                message.IsBodyHtml = false;

                //如果服务器支持安全连接,则将安全连接设为true。
                //如果是gmail则一定要将其设为true
                if (smtpHost == "smpt.gmail.com")
                    client.EnableSsl = true;
                else
                    client.EnableSsl = false;

                if (isadddocument == true)
                {
                    AddDocument(message, documentpath);
                }
                client.UseDefaultCredentials = false;
                //用户登陆信息
                NetworkCredential myCredentials = new NetworkCredential(Sendmailaddress, Sendpassword);
                client.Credentials = myCredentials;
                //发送邮件
                client.Send(message);
                sendstatus = true; 
            }
            catch { }
            return sendstatus;
        }

        /// <summary>
        /// 添加附件功能
        /// </summary>
        /// <param name="message">Mailmessage对象</param>
        /// <param name="Documentpath">附件路径列表</param>
        private void AddDocument(MailMessage message, List<string> Documentpath)
        {
            foreach(string filepath in Documentpath)
            {
                try
                {
                    if (File.Exists(filepath)) //判断文件是否存在
                    {
                        Attachment attach = new Attachment(filepath);    //构造一个附件对象
                        ContentDisposition disposition = attach.ContentDisposition;   //得到文件的信息
                        disposition.CreationDate = System.IO.File.GetCreationTime(filepath);
                        disposition.ModificationDate = System.IO.File.GetLastWriteTime(filepath);
                        disposition.ReadDate = System.IO.File.GetLastAccessTime(filepath);
                        message.Attachments.Add(attach);   //向邮件添加附件
                    }
                }
                catch { }      
            }             
        }
    }
}

 

转载于:https://www.cnblogs.com/cang12138/p/5520580.html

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值