1. 程式人生 > >終端下的郵件伺服器配置 mutt + msmtp + fetchmail 與 附件的獲取

終端下的郵件伺服器配置 mutt + msmtp + fetchmail 與 附件的獲取

 今天即興之下弄了六個多小時的linux,主要配置了終端下的郵件伺服器配置。

    這裡用到了mutt+msmtp+fetchmail,另外我用c++寫了一個直接獲取附件的小程式。雖然看起來不美,但怎麼說也是自己的勞動成果 : )

     為了節省流量和加快速度,我直接用學校的郵箱.

首先是mutt的配置檔案( ~/.muttrc )

#################################################

#忽略檔案頭
ignore *
unignore From: To: Cc: Subject: Date: #Only these are shown in the header

#下面是在郵件頭顯示的名字
set realname='suikay'

set sendmail="/usr/bin/msmtp"

#下面設定了vim作為編輯器
set editor=vim

set envelope_from=yes
set use_from=yes

################################################

下面是msmtp的配置檔案(~/.msmtprc)

大寫的是要改的

#預設的系統使用者(同上)

account SYSTEM_USER_NAME
host smtp.cqu.edu.cn
#protocol smtp
auth login

#賬戶

user YOUR_EMAIL_ACCOUNT
#密碼

password YOUR_PASSWORD

#預設的系統使用者(同上)

account default: SYSTEM_USER_NAME

################################

fetchmail 的配置檔案 (~/.fetchmailrc)

同樣,大寫都是要改的

set daemon 60
poll POP_SERVER(如pop3.mail.com) with proto PROTORL(如pop3)
user 'ACCOUNT' there with password 'PASSWORD' is 'SYSTEM_USER' here

配置好以後就可以用mutt來收發郵件了,或者可以用echo "你的郵件內容" | mutt -s "主題" -a "你要發的附件"   "郵件的目的地" 如

echo "This picture is nice.Do you think so ??" | mutt -s "Nice Picture" -a "Beautiful.jpg" [email protected]

另外我寫了一個直接從系統的郵件檔案(不懂怎麼說-_-!)裡將附件直接截出來的C++程式。對於Base64的檔案不支援,但是可以再加兩行程式碼來實現,在linux下可以用 base64 -d the_ori_file >> the_out_file 將其還原為原來的格式(經過md5測試)。

下面是將附件提取出來的程式碼,提取出來的檔案直接保存於當前目錄:

  1. /*++
  2.         在郵件檔案裡面個附件都用如"--asdfASDJF/asdf---"的一段十幾個亂字元分隔.
  3.         而且附件如果是Base64格式則會被轉化為ascii檔案(這個程式只是將ascii提取
  4.     出來而沒有將其還原.
  5.     */
  6. #include <iostream>
  7. #include <fstream>
  8. #include <string>
  9. usingnamespace std;
  10. int main()
  11. {
  12.     string boundary,content,name;
  13.     ifstream in("/var/spool/mail/suikay");
  14.     ofstream out;
  15. //找到邊界
  16. while(getline(in,content)&& content.find("boundary=")==string::npos);
  17. //如果沒有找到邊界退出 (如果沒有這句程式碼會導致錯誤)
  18. if(!content.size())
  19. return 0;
  20. // 將邊界提取出來
  21.     boundary = content.substr(content.find("boundary=")+10,16);
  22. for(int i = 0;i < 7;i++)
  23.         getline(in,content);
  24. while(getline(in,content) && content.find(boundary) == string::npos)
  25.         cout << content;
  26. while(getline(in,content)) {
  27. while(getline(in,content) && content.find("filename") == string::npos);
  28.         name = content.substr(content.find("/"")+1);
  29.         name.resize(name.size() - 1);
  30.         cout << name;
  31. //將新的附件檔案開啟以進行寫入
  32.         out.open(name.c_str());
  33.         getline(in,content);
  34.         getline(in,content);
  35.         getline(in,content);
  36.         out << content;
  37. while(getline(in,content)&&content.find(boundary)==string::npos)
  38.             out << endl << content;
  39.         out.close();
  40.     }
  41.     in.close();
  42. return 0;
  43. }

技術不高再加時間緊迫,肯定有不少bug,如有發現請不吝指教。

(ps:兩天後有物理考試,我現在一章都沒複習完,祝我好運吧~)

相關推薦

終端郵件伺服器配置 mutt + msmtp + fetchmail 附件獲取

 今天即興之下弄了六個多小時的linux,主要配置了終端下的郵件伺服器配置。     這裡用到了mutt+msmtp+fetchmail,另外我用c++寫了一個直接獲取附件的小程式。雖然看起來不美,但怎麼說也是自己的勞動成果 : )      為了節省流量和加快速度,我直接用

Ubuntu使用mutt收、發、回復郵件mutt+msmtp+fetchmail+procmail

muttUbuntu使用mutt收、發、回復郵件(mutt+msmtp+fetchmail+procmail): 說明:Mutt為基於文本的郵件客戶端,擔當郵件用戶代理角色,msmtp的作用是發郵件(包括回復),fetchmail的作用是將郵件保存到本地郵箱,procmail的作用是進行郵件過濾(根據發件人、

NAGIOS安裝配置+MUTT+MSMTP郵件報警設定

由於伺服器更新,所以公司重新部署了架構,需要一個監控,因此提前在虛擬機器裡過了一遍,整理出安裝NAGIOS監控的過程,僅供大家參考。 大環境: 兩臺linux主機(已經關閉了selinux和iptables功能) 192.168.1.184和192.168

Linux代理伺服器配置

1.安裝squid [[email protected] ~]# yum install squid -y 安裝: squid.x86_64 7:3.5.20-12.el7.x86_64.rpm

【Linux】Linux檢視伺服器配置的命令

目錄 一、伺服器型號 二、作業系統 三、CPU 四、記憶體 五、硬碟 六、其他 一、伺服器型號 dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product" 二

Linux,郵件伺服器配置

Linux,郵件伺服器配置 用Linux配置區域網內的郵件伺服器。postfix(傳送,這裡不使用sendmail,sendmail和postfix不能同時開啟),dovecot(接收),squirrelmail(基於phpweb的郵件應用)。 郵件伺服器的域名為 mail.demo

**Windows 2003系統DNS伺服器配置的描述

Windows 2003系統下DNS伺服器配置的描述中 主機記錄的生存時間是指該記錄被客戶端查詢到,存放到快取中(以備今後使用)的持續時間,預設值是3600秒;DNS伺服器中的根DNS伺服器不需管理員手工配置; DNS伺服器的IP地址必須為固定的IP地址 預設情

LinuxSamba伺服器配置

    之前一直在用Virtualbox和vagrant來在本地搭建虛擬機器,但是各種意外情況,煩的能搞死你,莫名其妙的崩潰,出錯(也有可能是我的問題),所以決定用之前熟悉的VMware來搭建開發環境。在本地(win)開發時需要能夠和虛擬機器共享資料夾,VMware自帶的

MACtomcat伺服器配置問題(包含Eclipse端口占用)

配置tomact伺服器時候可能會出現以下問題, HTTP Status 404 – Not Found 解決方案如下: 1.在tomcat官網進行下載 2.在終端進入到該tomcat資料夾 3.啟動該伺服器需要做的是啟動該配置檔案中的start

linuxApache伺服器配置虛擬域名

1. 修改httpd.conf 可以直接在Apache配置檔案的結尾新增如下程式碼,給Apache新增虛擬域名: NameVirtualHost *:80 <VirtualHost *:80> ServerName www.nine.com DocumentRoot

LinuxSamba伺服器配置,已成功

    之前一直在用Virtualbox和vagrant來在本地搭建虛擬機器,但是各種意外情況,煩的能搞死你,莫名其妙的崩潰,出錯(也有可能是我的問題),所以決定用之前熟悉的VMware來搭建開發環境

gitlab 郵件伺服器配置

一、修改 /etc/gitlab/gitlab.rb 檔案,新增郵件伺服器資訊 SMTP settings 例如163 郵件伺服器 gitlab_rails[‘smtp_enable’] =

Apache James郵件伺服器配置及傳送外網郵件

最近公司做的一個專案,使用者註冊需要郵箱驗證,本想呼叫別人的伺服器,呼叫apache自帶的email包實現! 但Boos發話,要自己搭建一個郵箱伺服器。。。 先前使用了winMail,但是收費

IBM Lotus Domino 郵件伺服器配置攻略

轉自: http://tech.sina.com.cn/h/2008-09-04/0600792843.shtml 作者:中關村線上 孫鵬 第1頁:系統環境     上期我們講解了IBM Lotus Domino Server的首次配置過程,這期我們就來看一下IBM L

Linux系統郵件伺服器的搭建(Postfix+Dovecot)

對於網站來說,傳送各種例如註冊通知的郵件是很基本的一個需求,之前我一直用的是騰訊的企業郵箱,感覺挺方便的,直接可以繫結QQ郵箱接收郵件,網站配置一下SMTP也就可以發出郵件。但是在前幾天由於有重要資訊需要立即通知使用者,所以選擇了群發郵件的方式。在當我以為一切都是辣麼完美的時

windowApache伺服器配置虛擬域名,以及新增多個埠對映

一.如何新增埠對映 先開啟apache目錄下conf資料夾下面的 httpd.conf檔案,之後在這裡面修改一些引數 apache預設的為80埠號,此時我們要新增多個埠, 圖中所示的81,82,83,84便是我們所新增的埠號,80埠是Apache預設的,

LINUX郵件伺服器搭建(SENDMAIL)(1.0)

小編就喜歡直接寫步驟,相關概念以後完善的時候再寫。OK,就直接開始sendmail郵件伺服器的搭建。第一步還是看sendmail服務裝了沒有,執行下圖命令如果沒有安裝,還是用介面化的點點點吧,這種方式小編比較喜歡(這裡省去掛載光碟步驟,小編在以前也說過步驟)如果沒有安裝,就直

LinuxDHCP伺服器配置 (二)

A、簡介   A.1、DHCP   DHCP:動態主機設定協議(Dynamic Host Configuration Protocol)是一個區域網的網路協議,使用UDP協議工作,主要有兩個用途:給內部網路或網路服務供應商自動分配IP地址給使用者給內部網路管理員作為對所有計算機作中央管理的手段。   A.2、

windows代理伺服器配置,以及通過代理共享上網

ListltStringgtlist=null這一句話是對的,但是我不明白,List是一個介面,為什麼可以定義物件 ListltStringgtlist=null這一句話是對的,但是我不明白,List是一個介面,為什麼可以定義物件 ListltStringgtlist=nul

WindowsLDAP伺服器配置

LDAP即輕量級目錄訪問協議(Lightweight Directory Access Protocol),基礎知識不再贅述,本文主要記錄我的配置與安裝過程。 LDAP for windows下載 openLDAP官方網站:http://www.openldap.org/ openLDAP官網只提供了