Linux:Mail 用法簡介
Command Line 模式寄出
echo "This is a mail content" | mail -s "Title" -r eddie@lang.idv.tw eddy@lang.idv.tw
Usage: mail -eiIUdEFntBDNHRV~ -T FILE -u USER -h hops -r address -s SUBJECT -a FILE -q FILE -f FILE -A ACCOUNT -b USERS -c USERS -S OPTION users
參數說明:
- -s 設定這封信的主旨,當主旨內容留有空白字元時,需將其用引號包住。\\例 :-s “test mail”
- -a 想在信件中夾帶附加檔案,用這個參數就對了。
例 :-a ~/testfile - -c 指定信件的副本。
例 :-c barry,vivian - -b 指定信件的密件副本 ( 將收件者的郵件地址隱藏 )。
例 :-b mary,tina@msa.hinet.net - -q 以指定的檔案做為信件的起始內容。
例: -q ~/mailfile - -r 設定 mail from 的郵件地址。
例:-r admin@paching.idv.tw - -u 讀取使用者的 mailbox。
例 :-u barry - -f 讀取使用者的 mailbox。
例 :-f /var/spool/mail/barry
將某檔案的內容直接寄出
假設有一文字檔 content.txt 以下指令可以直按寄出內文
# cat content.txt ||mail -s "mail test" test@gmail.com
or
mail -s "This is a test" aa@aa.com < content.txt
編輯模式寄出:
[root@test root]# mail vbird@qqdomain.name Subject: This is a test mail There are writing area! You can't use the Up/Down button in this form... you can finish with "." . <==這個『.』就是結束符號!要正常離開編輯畫面就是 . !
寄 HTML 格式 \\(但不支援 JavaScript) (echo -e “Subject: HTML\nMIME-Version: 1.0\nFrom: eddie_lin@ccandc.com.tw\nTo:eddie@lang.idv.tw\nContent-Type: text/html\nContent-Disposition: inline\n\n”;/bin/cat /var/www/html/uploadFile.htm) | /usr/sbin/sendmail -f eddie_lin@ccandc.com.tw eddie@lang.idv.tw
mail/mailx命令使用外部SMTP來發送郵件
/bin/mail會默認使用本地sendmail發送郵件,這樣本地的機器必須安裝和啟動Sendmail服務,配置非常麻煩,而且會帶來不必要的資源佔用。而通過修改配置文件可以使用外部SMTP服務器,可以達到不使用sendmail而用外部的SMTP服務器發送郵件的目的:
修改/etc/mail.rc 加入底下設定:
set from=fromuser@domain.com smtp=domain.com set smtp-auth-user=username smtp-auth-password=password set smtp-auth=login
說明:
from是發送的郵件地址
smtp是發生的外部smtp服務器的地址
smtp-auth-user是外部smtp服務器認證的用戶名
smtp-auth-password是外部smtp服務器認證的用戶密碼
smtp-auth是郵件認證的方式
配置成功後,就可以使用了,可以發送一封郵件測試一下:
mail -s "test" user@domain.com < content.txt
其中-s後面的是郵件標題,user@domain.com是收件人地址,content.txt裡面是郵件內容
在linux下利用Google的SMTP来发邮件
在维护服务器的时候,经常需要建立一个服务器错误预警系统,而邮件是一个很好的途径。 在linux下,一般是通过mail来写邮件,而传递默认使用sendmail服务。这样虽然能向外界发送邮件,但邮件不能回复,并且sendmail服务要求发送方是系统可识别用户,配置比较麻烦。下面通过使用Google的SMTP服务器来发送邮件,不但减轻服务器负担,而且可以使用类似的公共邮件地址来作为发送方。 下面所有步骤,全部基于CentOS 6.3,其他发行版本类似。 1.安装mail yum install mailx -y 2.如果想直接使用sendmail来发送邮件,需要启动sendmail服务,或者saslauthd服务 3.如果想利用外部SMTP发送邮件,需编辑/etc/mail.rc,加入以下内容 set from=demo@qq.com set smtp=smtp.qq.com set smtp-auth-user=demo set smtp-auth-password=demopass set smtp-auth=login 但是这个设置只适合那些支持非ssl链接的SMTP服务器,但对于想Google这样,强制使用SSL加密连接的,需根据第4步配置mail 4.利用Google的SMTP发送邮件 在裝有 Firefox 的 Linux 电脑, 將 ~/.mozilla/firefox/xxxxxxxx.default/ 的 cert*.db 与 key*.db 复制到 ~/.mozilla_nss_shared_db 编辑/etc/mail.rc,加入以下内容 set ssl-verify=ignore set nss-config-dir=~/.mozilla_nss_shared_db set from="myaccount@gmail.com(myname)" set smtp=smtps://smtp.gmail.com:465 set smtp-auth=login set smtp-auth-user=myaccount set smtp-auth-password=mysecret 如果想添加多个帐号,那就这样写配置文件 account starttls { set smtp-use-starttls set ssl-verify=ignore set nss-config-dir=~/.mozilla_nss_shared_db set from="myaccount@my.smtp.host(myname)" set smtp=smtp://my.smtp.host:25 set smtp-auth=login set smtp-auth-user=myaccount set smtp-auth-password=mysecret } account gmail { set ssl-verify=ignore set nss-config-dir=~/.mozilla_nss_shared_db set from="myaccount@gmail.com(myname)" set smtp=smtps://smtp.gmail.com:465 set smtp-auth=login set smtp-auth-user=myaccount set smtp-auth-password=mysecret } 不过在发送邮件的时候,需要用-A参数指定发送帐号,比如-A gmail
sendmail發郵件報錯的解决辦法
error: Real domain name required for sender address。
是hostname配置的問題,重新修改hostname即可。
重新溫習一下修改hostname的步驟 1、hostname server01 【立即生效】 2、vi /etc/sysconfig/network 【重启後會讀這個文件】 添加或修改:HOSTNAME=server01 3、vi /etc/hosts 【跟各個應用有着千絲萬縷的關系,一定得改】 在127.0.0.1後面添加主機名server01
error: Relaying denied. IP name lookup failed
解决问题:
修改access文件,将本机ip加入后,问题解决!
具体方法:
/etc/mail/access 加入 xxx.xxx.xxx.xxx RELAY