電腦開機(jī)自動(dòng)發(fā)送郵件通知

前言

來自一位爸爸的需求,由于女兒在家會(huì)偷偷玩電腦卧檐,就想讓hojun幫忙做個(gè)電腦開機(jī)就馬上短信通知他的小程序。短信要錢焰宣,郵件免費(fèi)霉囚,當(dāng)然是選擇郵件咯~

當(dāng)時(shí)就在網(wǎng)絡(luò)上收索了一波,其中一種解決方案是使用一個(gè)小軟件加windows的bat批處理命令實(shí)現(xiàn)開機(jī)自動(dòng)發(fā)送郵件的功能匕积。嘗試下載這個(gè)軟件結(jié)果直接被360檢測成了病毒盈罐,直接給清理掉了榜跌。
還有一種實(shí)現(xiàn)是通過windows的服務(wù)來實(shí)現(xiàn)的,略微看了一下盅粪。由于windows服務(wù)還真沒接觸過钓葫,就決定,花一個(gè)晚上的時(shí)間動(dòng)手實(shí)現(xiàn)一下這個(gè)功能票顾。

第一步 開發(fā)環(huán)境介紹

windows電腦
VisualStudio(博主用的2015)
.Net framework4.0
可以在 C:\Windows\Microsoft.NET\Framework\ 目錄看下如下圖:(可以發(fā)現(xiàn)1-4都有)


image

第二步 開發(fā)windows服務(wù)

打開vs2015點(diǎn)擊新建項(xiàng)目


image

在Visual C#>Windows>經(jīng)典桌面 下面础浮,這里選擇.NET Framework4(因?yàn)橹澳夸浵掠校覀冞@里選擇有的)奠骄,再選擇Windows服務(wù)豆同。名稱使用默認(rèn)的,位置自己選擇含鳞。點(diǎn)擊確定->


image

新建后如下圖影锈,我們在這個(gè)頁面 右鍵>添加安裝程序
image

會(huì)跳到這個(gè)頁面,我們可以在控件上面 右鍵>屬性蝉绷,也可以點(diǎn)擊右側(cè)解決方案資源管理器的屬性欄更改其屬性鸭廷。


image

這個(gè)給它的Account改為LocalSystem
image

這里添加描述、名稱熔吗,以及啟動(dòng)方式改為Auto開機(jī)自動(dòng)
image

安裝配置好后辆床,回到之前頁面,點(diǎn)擊藍(lán)色字體跳轉(zhuǎn)到代碼視圖
image

默認(rèn)給我們?nèi)齻€(gè)方法磁滚,一個(gè)構(gòu)造方法佛吓、開始以及停止
image

開始coding前,我們還要設(shè)置下我們的郵箱

第三步 準(zhǔn)備郵箱授權(quán)碼

這里以QQ郵箱為例垂攘,點(diǎn)擊設(shè)置>賬戶>


image

點(diǎn)擊開啟POP3/SMTP服務(wù)维雇,會(huì)叫你發(fā)送短信驗(yàn)證


image

驗(yàn)證完后得到授權(quán)碼
image

第四步 coding生成

代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.Net;
using System.Net.Mail;
using System.Net.NetworkInformation;
using System.ServiceProcess;
using System.Text;
using System.Threading;

namespace AutoSendEmail
{
    public partial class Service1 : ServiceBase
    {
        System.Timers.Timer createOrderTimer;
        public Service1()
        {
            InitializeComponent();
        }

        protected override void OnStart(string[] args)
        {
            createOrderTimer = new System.Timers.Timer();
            createOrderTimer.Elapsed += new System.Timers.ElapsedEventHandler(Page_Load);
            createOrderTimer.Interval = 20000;
            createOrderTimer.Enabled = true;
            createOrderTimer.AutoReset = true;
            createOrderTimer.Start();
        }

        

        protected override void OnStop()
        {

        }
        protected void Page_Load(object sender, System.Timers.ElapsedEventArgs args)
        {
            Ping ping = new Ping();
            PingReply pr = ping.Send("baidu.com");
            if (pr.Status == IPStatus.Success)
            {
                //實(shí)例化一個(gè)發(fā)送郵件類。
                MailMessage mailMessage = new MailMessage();
                //發(fā)件人郵箱地址晒他,方法重載不同吱型,可以根據(jù)需求自行選擇。
                mailMessage.From = new MailAddress("1234567890@qq.com");
                //收件人郵箱地址陨仅。
                mailMessage.To.Add(new MailAddress("0987654321@qq.com"));
                //郵件標(biāo)題津滞。
                mailMessage.Subject = "電腦狀態(tài)";
                //郵件內(nèi)容。
                mailMessage.Body = "開機(jī)";

                //實(shí)例化一個(gè)SmtpClient類灼伤。
                SmtpClient client = new SmtpClient();
                //在這里我使用的是qq郵箱触徐,所以是smtp.qq.com,如果你使用的是126郵箱狐赡,那么就是smtp.126.com撞鹉。
                client.Host = "smtp.qq.com";
                //使用安全加密連接。
                client.EnableSsl = true;
                //不和請求一塊發(fā)送。
                client.UseDefaultCredentials = false;
                //驗(yàn)證發(fā)件人身份(發(fā)件人的郵箱鸟雏,郵箱里的生成授權(quán)碼);
                client.Credentials = new NetworkCredential("1234567890@qq.com", "xxxxxxxxxxxx");
                //發(fā)送
                client.Send(mailMessage);
                //Context.Response.Write("發(fā)送成功");
                StopWindowsService("AutoSendEmail");
            }
        }
        /// <summary>
        /// 開啟服務(wù)
        /// </summary>
        /// <param name="windowsServiceName">服務(wù)名稱</param>
        static void StartWindowsService(string windowsServiceName)
        {
            using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController(windowsServiceName))
            {
                if (control.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
                {
                    Console.WriteLine("服務(wù)啟動(dòng)......");
                    control.Start();
                    Console.WriteLine("服務(wù)已經(jīng)啟動(dòng)......");
                }
                else if (control.Status == System.ServiceProcess.ServiceControllerStatus.Running)
                {
                    Console.WriteLine("服務(wù)已經(jīng)啟動(dòng)......");
                }
            }

        }

        /// <summary>
        /// 停止服務(wù)
        /// </summary>
        /// <param name="windowsServiceName">服務(wù)名稱</param>
        static void StopWindowsService(string windowsServiceName)
        {
            using (System.ServiceProcess.ServiceController control = new System.ServiceProcess.ServiceController(windowsServiceName))
            {
                if (control.Status == System.ServiceProcess.ServiceControllerStatus.Running)
                {
                    Console.WriteLine("服務(wù)停止......");
                    control.Stop();
                    Console.WriteLine("服務(wù)已經(jīng)停止......");
                }
                else if (control.Status == System.ServiceProcess.ServiceControllerStatus.Stopped)
                {
                    Console.WriteLine("服務(wù)已經(jīng)停止......");
                }
            }
        }
    }
}

代碼完成后 右鍵>生成


image

在輸出窗口拷貝生成目錄


image

在電腦中打開如下:
image

在這個(gè)目錄下新建兩個(gè)txt文檔享郊,內(nèi)容如下:
安裝.txt

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
InstallUtil.exe 
InstallUtil E:\C#Workspace\lab\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe
pause

卸載.txt

cd C:\Windows\Microsoft.NET\Framework\v4.0.30319\
InstallUtil.exe
InstallUtil.exe /u E:\C#Workspace\lab\WindowsService1\WindowsService1\bin\Debug\WindowsService1.exe
pause

然后將其擴(kuò)展名改為bat


image

右鍵>以管理員身份運(yùn)行


image

出現(xiàn)如下提示表示安裝成功
image

回到桌面,開始右鍵>打開控制面板


image

搜索服務(wù)孝鹊,并打開
image

按名稱排序炊琉,找到我們的AutoSendEmail服務(wù)
image

右鍵啟動(dòng)
image

手機(jī)上收到郵件如下
image

卸載的話也是右鍵>以管理員身份運(yùn)行


image

致謝

雜記2:VS2013創(chuàng)建Windows服務(wù)實(shí)現(xiàn)自動(dòng)發(fā)送郵件,作者:wuxiaochao
C#實(shí)現(xiàn)發(fā)送給QQ郵件,作者:謝尊旭
Windows服務(wù)實(shí)現(xiàn)自動(dòng)發(fā)送郵件通知,云棲社區(qū),來源互聯(lián)網(wǎng)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末又活,一起剝皮案震驚了整個(gè)濱河市苔咪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌皇钞,老刑警劉巖悼泌,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異夹界,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)隘世,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進(jìn)店門可柿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人丙者,你說我怎么就攤上這事复斥。” “怎么了械媒?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵目锭,是天一觀的道長。 經(jīng)常有香客問我纷捞,道長痢虹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任主儡,我火速辦了婚禮奖唯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘糜值。我一直安慰自己丰捷,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布寂汇。 她就那樣靜靜地躺著病往,像睡著了一般。 火紅的嫁衣襯著肌膚如雪骄瓣。 梳的紋絲不亂的頭發(fā)上停巷,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼叠穆。 笑死少漆,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的硼被。 我是一名探鬼主播示损,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嚷硫!你這毒婦竟也來了检访?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤仔掸,失蹤者是張志新(化名)和其女友劉穎脆贵,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體起暮,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卖氨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了负懦。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片筒捺。...
    茶點(diǎn)故事閱讀 39,795評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖纸厉,靈堂內(nèi)的尸體忽然破棺而出系吭,到底是詐尸還是另有隱情,我是刑警寧澤颗品,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布肯尺,位于F島的核電站,受9級特大地震影響躯枢,放射性物質(zhì)發(fā)生泄漏则吟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一闺金、第九天 我趴在偏房一處隱蔽的房頂上張望逾滥。 院中可真熱鬧,春花似錦败匹、人聲如沸寨昙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽舔哪。三九已至,卻和暖如春槽棍,著一層夾襖步出監(jiān)牢的瞬間捉蚤,已是汗流浹背抬驴。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留缆巧,地道東北人布持。 一個(gè)月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像陕悬,于是被迫代替她去往敵國和親题暖。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容