7.dotnet core 如何发邮件

需要用到的Nuget包

"MailKit": "1.8.1",

方法

  /// <summary>
        /// 发送邮件(支持Html发送,支持添加一个附件)
        /// </summary>
        /// <param name="subject">邮件标题</param>
        /// <param name="email">收件人地址</param>
        /// <param name="content">邮件内容</param>
        /// <param name="filepath">文件的相对路径</param>
        public static void SendEmail(string subject, string email,string content,string filepath=null)
        {
            var message = new MimeMessage();
            //发信人
            message.From.Add(new MailboxAddress("发信人姓名", "发信人邮箱"));
            //收信人
            message.To.Add(new MailboxAddress("", email));
            //标题
            message.Subject = subject;
            //产生一个支持Html的TextPart
            var body = new TextPart(TextFormat.Html)
            {
                Text = content
            };
            //先产生一个
            var multipart = new Multipart("mixed");
            //添加正文内容
            multipart.Add(body);
            if (!string.IsNullOrWhiteSpace(filepath))
            {
                //生产一个绝对路径
                //filepath = "Upload//NewsPhoto//readme.txt";
                var absolutePath = Path.Combine(_hostingEnv.WebRootPath, string.Format(filepath));
                //附件
                var attachment = new MimePart()
                {
                    //读取文件(只能用绝对路径)
                    ContentObject = new ContentObject(File.OpenRead(absolutePath), ContentEncoding.Default),
                    ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
                    ContentTransferEncoding = ContentEncoding.Base64,
                    //文件名字
                    FileName = Path.GetFileName(absolutePath)
                };
                //添加附件
                multipart.Add(attachment);
            }
            //正文内容
            message.Body = multipart;
            using (var client = new SmtpClient())
            {
                //连接到Smtp服务器
                client.Connect("smtp服务器地址", 端口, false);
                //登陆
                client.Authenticate("账号", "密码");
                //发送
                client.Send(message);
                //断开
                client.Disconnect(true);
            }
        }

以上的这个方法可以发Html的文本并附带附件

时间: 2024-10-12 18:04:27

7.dotnet core 如何发邮件的相关文章

使用Django实现发邮件功能

django实现邮件发送功能 1)首先注册一个邮箱,这里以163邮箱为例 2)注册之后登录,进行如下修改 找到设置,设置一个授权码,授权码的目的仅仅是让你有权限发邮件,但是不能登录到邮箱进行修改,发送邮件时,可以代替密码 3)然后在项目里的配置文件settings.py中进行一些配置: EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_USE_TLS = False #是否使用TLS安全传输协议(用于在两个通信

django发邮件

django发邮件 配置setting信息 1 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' 2 3 4 EMAIL_HOST = 'smtp.qq.com' 5 EMAIL_PORT = 25 6 EMAIL_HOST_USER = your email address 7 EMAIL_HOST_PASSWORD = 'our email key 8 EMAIL_FROM = '<your email address

django、celery异步发邮件

django.celery异步发邮件 django自带的send_mail发邮件功能执行发邮件功能会因为网络的原因造成花费的时间过长,为了解决这个问题,可以用celery + redis代替 安装包: pip install celery pip install redis 在django的根目录下新建celery_tasks文件夹,在该文件夹下新建tasks.py: 1 from celery import Celery 2 from django.conf import settings 3

Linux发邮件之mail

1.安装 (需要sendmail或postfix服务) sendmail     # yum install sendmail      # systemctl start sendmail.service     # systemctl status sendmail.service postfix     # yum install mailx     # systemctl start postfix.service     # systemctl status postfix.servi

Linux发邮件

一.mail命令 1.配置 vim /etc/mail.rc 文件尾增加以下内容  set [email protected] smtp="smtp.qq.com"set smtp-auth-user="[email protected]" smtp-auth-password="123456"set smtp-auth=login 说明: from: 对方收到邮件时显示的发件人smtp: 指定第三方发送邮件的smtp服务器地址smtp-auth

Ubuntu 带账号认证发邮件

Ubuntu带账号认证发邮件 安装heirloom-mailx # apt-get install heirloom-mailx 修改/etc/nail.rc(最后添加) set [email protected] set smtp=10.0.0.4 set [email protected] set smtp-auth-password=123456 set smtp-auth-login :wq # echo "bb" mail -s "aa" [email p

【Python系列】Python自动发邮件脚本

缘起 这段时间给朋友搞了个群发邮件的脚本,为了防止进入垃圾邮件,做了很多工作,刚搞完,垃圾邮件进入率50%,觉得还不错,如果要将垃圾邮件的进入率再调低,估计就要花钱买主机了,想想也就算了,先发一个月,看看效果再拓展吧. 脚本主要是通过Python写的,调的smtplib库,这些是基础,大家在网上一搜一大堆,今天主要给大家讲解下如何避免进入垃圾邮件系统,以及整个系统搭建时的一些思想.可能刚搞Python不久,有很多可能是错误的写法望大家提出来哈~ 配置 CentOS7.0系统 Python 3.4

使用mail.rc快速配置linux发邮件服务

1.系统环境. [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.8 (Final) [[email protected] ~]# uname -r 2.6.32-642.el6.x86_64 [[email protected] ~]# uname -m x86_64 2.通过修改配置文件/etc/mail.rc可以使用外部SMTP服务器,轻松实现linux发邮件功能. [[email protected] ~]#

利用Laravel自带的Mail类发邮件

由于项目在运行过程中经常用到邮件检测报警的功能,而在之前我都是用shell脚本发送邮件.shell脚本的优点是可以直接处理服务器指令,但是其缺点就是处理数据的能力效率太低,取数据库的许多数据要先把数据写入文件里,然后每行读文件并且分割来取出你想要的数据,相对来说麻烦太多.所以本人就准备直接利用Laravel框架封装好的Mail类直接发邮件,而且php语言相对shell来说数据处理能力简直强太多,所以果断弃坑了. 首先新建一个Laravel项目,在其.env文件里找到MAIL相关值,配好邮件发送账