搭建一个邮件服务器

  本实例需下载hMailServer与foxMail配合使用,达到接收邮件功能,下面用C#代码实现接收邮件功能。

注:安装包已经放到百度云盘上,若需要请自己下载,里面包含安装步骤与环境配置教程!

链接:https://pan.baidu.com/s/1au4mLB7Mu1DUPulLa4Uz7Q
提取码:uqcr
C#编写代码方式,实现邮件发送

主界面:

实现代码:

        private void button1_Click(object sender, EventArgs e)
        {
            //引用命名空间:using System.Net.Mail;
            //1、创建一个邮件对象
            MailMessage mailObject = new MailMessage();
            //设置发件人
            mailObject.From = new MailAddress("sam@chenyanbin.cn"); //发件人地址
            //设置收件人
            mailObject.To.Add(new MailAddress("alex@chenyanbin.cn")); //收件人,可以多个
            //mailObject.CC 抄送的人
            //设置邮件主题
            //为了防止乱码,设置主题编码格式
            mailObject.SubjectEncoding = Encoding.UTF8;
            mailObject.Subject = "吃了吗?";
            //设置正文编码格式
            mailObject.BodyEncoding = Encoding.UTF8;
            mailObject.Body = "吃了吗?吃的什么晚饭";
            //2.创建一个发送邮件的对象
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Host = "192.168.0.108"; //设置服务器ip地址
            smtpClient.Port = 25; //端口号
            //引入命名空间:using System.Net;
            smtpClient.Credentials = new NetworkCredential("sam","1234");
            //发送
            smtpClient.Send(mailObject);
            MessageBox.Show("ok");
        }

接收成功!

 写一封带HTML的邮件

方式一:

        private void button2_Click(object sender, EventArgs e)
        {
            #region 方式一
            //引用命名空间:using System.Net.Mail;
            //1、创建一个邮件对象
            MailMessage mailObject = new MailMessage();
            //设置发件人
            mailObject.From = new MailAddress("sam@chenyanbin.cn"); //发件人地址
            //设置收件人
            mailObject.To.Add(new MailAddress("alex@chenyanbin.cn")); //收件人,可以多个
            //mailObject.CC 抄送的人
            //设置邮件主题
            //为了防止乱码,设置主题编码格式
            mailObject.SubjectEncoding = Encoding.UTF8;
            mailObject.Subject = "吃了吗?";
            //设置正文编码格式
            //-------------------------------------
            mailObject.BodyEncoding = Encoding.UTF8;
            mailObject.Body = "吃了吗?<font color='red' size='7'>吃的</font>什么晚饭呀";
            mailObject.IsBodyHtml = true;
            //--------------------------------------
            //2.创建一个发送邮件的对象
            SmtpClient smtpClient = new SmtpClient();
            smtpClient.Host = "192.168.0.108"; //设置服务器ip地址
            smtpClient.Port = 25; //端口号
            //引入命名空间:using System.Net;
            smtpClient.Credentials = new NetworkCredential("sam", "1234");
            //发送
            smtpClient.Send(mailObject);
            MessageBox.Show("ok");
            #endregion
        }

方式二:

 1         private void button2_Click(object sender, EventArgs e)
 2         {
 3             #region 方式二
 4             //引用命名空间:using System.Net.Mail;
 5             //1、创建一个邮件对象
 6             MailMessage mailObject = new MailMessage();
 7             //设置发件人
 8             mailObject.From = new MailAddress("sam@chenyanbin.cn"); //发件人地址
 9             //设置收件人
10             mailObject.To.Add(new MailAddress("alex@chenyanbin.cn")); //收件人,可以多个
11             //mailObject.CC 抄送的人
12             //设置邮件主题
13             //为了防止乱码,设置主题编码格式
14             mailObject.SubjectEncoding = Encoding.UTF8;
15             mailObject.Subject = "吃了吗?";
16             //设置正文编码格式
17             //-------------------------------------
18             mailObject.BodyEncoding = Encoding.UTF8;
19             //创建一个html正文对象
20             AlternateView htmlBody = AlternateView.CreateAlternateViewFromString("吃了吗?<font color='red' size='7'>吃的</font>什么晚饭呀", null,"text/html");
21             //把html正文对象加到邮件对象mailObject中
22             mailObject.AlternateViews.Add(htmlBody);
23             //--------------------------------------
24             //2.创建一个发送邮件的对象
25             SmtpClient smtpClient = new SmtpClient();
26             smtpClient.Host = "192.168.0.108"; //设置服务器ip地址
27             smtpClient.Port = 25; //端口号
28             //引入命名空间:using System.Net;
29             smtpClient.Credentials = new NetworkCredential("sam", "1234");
30             //发送
31             smtpClient.Send(mailObject);
32             MessageBox.Show("ok");
33             #endregion
34         }

效果图:

 发送带图片的邮件:

 1         private void button3_Click(object sender, EventArgs e)
 2         {
 3             #region 方式二
 4             //引用命名空间:using System.Net.Mail;
 5             //1、创建一个邮件对象
 6             MailMessage mailObject = new MailMessage();
 7             //设置发件人
 8             mailObject.From = new MailAddress("sam@chenyanbin.cn"); //发件人地址
 9             //设置收件人
10             mailObject.To.Add(new MailAddress("alex@chenyanbin.cn")); //收件人,可以多个
11             //mailObject.CC 抄送的人
12             //设置邮件主题
13             //为了防止乱码,设置主题编码格式
14             mailObject.SubjectEncoding = Encoding.UTF8;
15             mailObject.Subject = "吃了吗?";
16             //设置正文编码格式
17             //-------------------------------------
18             mailObject.BodyEncoding = Encoding.UTF8;
19             //创建一个html正文对象
20             AlternateView htmlBody = AlternateView.CreateAlternateViewFromString("吃了吗?<font color='red' size='7'>吃的</font>什么晚饭呀<img src='cid:pho'/>", null, "text/html");
21             //创建一个资源,该资源与html正文中的相关内容一一对应
22             LinkedResource lr = new LinkedResource(@"01.jpg", "image/jpg");
23             lr.ContentId = "xxx";
24             //把这个资源加到html正文中
25             htmlBody.LinkedResources.Add(lr);
26             //把html正文对象加到邮件对象mailObject中
27             mailObject.AlternateViews.Add(htmlBody);
28             //--------------------------------------
29             //2.创建一个发送邮件的对象
30             SmtpClient smtpClient = new SmtpClient();
31             smtpClient.Host = "192.168.0.108"; //设置服务器ip地址
32             smtpClient.Port = 25; //端口号
33             //引入命名空间:using System.Net;
34             smtpClient.Credentials = new NetworkCredential("sam", "1234");
35             //发送
36             smtpClient.Send(mailObject);
37             MessageBox.Show("ok");
38             #endregion
39         }

 发送带附件的邮件:

 1         private void button4_Click(object sender, EventArgs e)
 2         {
 3             #region 方式二
 4             //引用命名空间:using System.Net.Mail;
 5             //1、创建一个邮件对象
 6             MailMessage mailObject = new MailMessage();
 7             //设置发件人
 8             mailObject.From = new MailAddress("sam@chenyanbin.cn"); //发件人地址
 9             //设置收件人
10             mailObject.To.Add(new MailAddress("alex@chenyanbin.cn")); //收件人,可以多个
11             //mailObject.CC 抄送的人
12             //设置邮件主题
13             //为了防止乱码,设置主题编码格式
14             mailObject.SubjectEncoding = Encoding.UTF8;
15             mailObject.Subject = "吃了吗?";
16             //设置正文编码格式
17             //-------------------------------------
18             mailObject.BodyEncoding = Encoding.UTF8;
19             //创建一个html正文对象
20             AlternateView htmlBody = AlternateView.CreateAlternateViewFromString("吃了吗?<font color='red' size='7'>吃的</font>什么晚饭呀<img src='cid:pho'/>", null, "text/html");
21             //创建一个资源,该资源与html正文中的相关内容一一对应
22             LinkedResource lr = new LinkedResource(@"01.jpg", "image/jpg");
23             lr.ContentId = "xxx";
24             //把这个资源加到html正文中
25             htmlBody.LinkedResources.Add(lr);
26             //把html正文对象加到邮件对象mailObject中
27             mailObject.AlternateViews.Add(htmlBody);
28             //----------------------增加附件------------------
29             Attachment attach1 = new Attachment("a.jpg");
30             mailObject.Attachments.Add(attach1);
31             //----------------------增加附件------------------
32             //--------------------------------------
33             //2.创建一个发送邮件的对象
34             SmtpClient smtpClient = new SmtpClient();
35             smtpClient.Host = "192.168.0.108"; //设置服务器ip地址
36             smtpClient.Port = 25; //端口号
37             //引入命名空间:using System.Net;
38             smtpClient.Credentials = new NetworkCredential("sam", "1234");
39             //发送
40             smtpClient.Send(mailObject);
41             MessageBox.Show("ok");
42             #endregion
43         }

 

转载于:https://www.cnblogs.com/chenyanbin/p/10928414.html

C# 开发的邮件服务器 Features supports pop3 smtp imap etc. supports ssl/tls for pop3, smtp and imap. supports multi mail vitural server, can bind multi domains. supports run as windows service, winform application with or without tray icon control. supports remote management using mailservermanager.exe supports mail recycle bin supports plugins using api interfaces Build and release download source code or use the releases i provided. if from source code you should run afterbuild.bat after build the solution successfuly then you get the debug or release version from application folder. Installation run MailServerLauncher.exe to install as windows service or just run as desktop application with or without tray icon. Configuration run MailServerManager.exe at the machine runs mailserver service or app. Connect to server press connect button from menu. type server localhost or 127.0.0.1 or leave it empty type username Administrator with case sensitive type password emtpy press ok to connect with saving or not Add virtual server type name and select storage api [your vitural server]>system>general, add dns servers for query mailto's domain mx record. [your vitural server]>system>services, enable smtp and pop3 services and set ipaddress binding with or without ssl/tls. the host name is required when set bindings. eg. bind smtp service to smtp.[your.domain] + IPAddress.Any [your vitural server]>system>service>relay, 'send email using DNS' and set at least a local ipaddress binding for email sending. the name of the binding here only a name,not mean domain. [your vitural server]>system>logging, enable logging for all services when something error you can see the details from 'Logs and Events' node [your vitural server]>domains, set email host domain, eg. if your email will be xyz@abc.com then the domain should be abc.domain, description is optional [your vitural server]>security, !!! important, add rules for your service to allow outside access like email client. eg. add a rule 'Smtp Allow All' for smtp service with ip allows between 0.0.0.0 to 255.255.255.255 to enable smtp service for outside access add 'Pop3 Allow All' and 'Rlay Allow All' like that too. [your vitural server]>filters, there are two types of filter named 'DnsBlackList' and 'VirusScan' its configurable by run it's executable from mail server install path. Domain name resolution Add smtp.[your.domain], pop3.[your.domain], imap.[your.domain] resolution to your server public ip address with A record or to your server domain with CNAME record. mx record is optional if [your.domain] has a A record.if not, you shoud add a mx record point to your server ip. Remote management to enable remote management you must add ACL to allow mail server managers connect from outside network. use MailServerAccessManager.exe to add management users or just use administrator. add rules to allow access from specific IPs or ip ranges The users here only for management cases.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值