2009年7月29日 星期三

Postfix的郵件"備份"方式

Postfix也可以使用BCC的方式來備份收發的信件

vim /etc/postfix/main.cf

有三種模式可以使用,直接在main.cf加入即可
1.以收件者判斷
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc
加入後編輯規則檔
vim /etc/postfix/recipient_bcc
User@mail.com.tw bcc@mail.com.tw
存檔後產生DB
/usr/sbin/postmap /etc/postfix/recipient_bcc

2.以寄件者判斷
sender_bcc_maps = hash:/etc/postfix/sender_bcc
加入後編輯規則檔
vim /etc/postfix/sender_bcc
Sender@mail.com.tw bcc@mail.com.tw
存檔後產生DB
/usr/sbin/postmap /etc/postfix/sender_bcc


3.全部備份
always_bcc = Admin@mail.com.tw
直接加入要轉寄的帳號即可

※關鍵字範例

1."user@mail.tw":指定帳號
2."user*@mail.tw":指定帳號含萬用字元
3."user":指定本機帳號
4."user*":指定本機帳號含萬用字元
5."@mail.tw":指定網域

2009年7月28日 星期二

邪惡的Archive Mail備份郵件(By MailScanner)

MailScanner有一個邪惡又好用的功能:『Archive Mail』
這個比Forward還要厲害的功能,當你想要存留(備份)用戶收、的信件時,用這就就對了~

1.啟動Archive功能
vim /etc/MailScanner/MailScanner.conf
Archive Mail = /etc/MailScanner/archive.rule

2.編輯Archive規則
vim /etc/MailScanner/archive.rule
基本規則如下:
FromOrTo: User@mail.com* yes forward Admin@mail.com.tw
(收件者或寄件者) (關鍵字,可配合萬用字元) (yes,啟用規則) (forward,動作) (Forward的目標)

※Archive Mail不但可以過濾到本機網域的帳號,也可以以外部帳號作為關鍵字,只要有經過MailScanner掃描的都可以做處理。
※以上只是簡單的例子,Archive Mail還有許多變化跟應用

Lnux 校時設定

◎直接修改時間
date MMDDhhmmYYYY
Ex.
date 072802042009

◎安裝NTP自動校時
1.安裝ntpdate
yum install ntpdate
2.執行網路校時
/usr/sbin/ntpdate tock.stdtime.gov.tw (或當地的NTP伺服器)
3.將時間寫入BIOS
hwclock -w
4.排程自動校正
(Ex.每天5:10校時)
vim /etc/crontab
10 5 * * * root /usr/sbin/ntpdate tock.stdtime.gov.tw && /sbin/hwclock -w

2009年7月27日 星期一

使用PHP網頁發送Mail(By PHPMailer)

先下載PHPMailer ( 官方下載網址 ) ,解壓縮至網頁資料夾。

建立PHP網頁,下例為MailSend.php

以下插入<head>中

<?php
if ($_POST[MailTitle]){
//載入PHPMailer
require_once("phpmailer/class.phpmailer.php");

$SendTo = "";
$SendTo = $_POST["MailTo"];
$SendNum = "公告已送出!共送出 " . substr_count($SendTo, '@') . " 封";

//建立Mail
$mail = new PHPMailer();

//設定發送
//$mail->IsSMTP();
$mail->Mailer = "mail";
//寄件人
$mail->From = "send@mail.com.tw";
//寄件人名稱
$mail->FromName = "SENDER";
//密件副本收件者
$mail->AddBCC($SendTo);
//回信Email及名稱
$mail->AddReplyTo("send@mail.com.tw", "SENDER");
//設定編碼
$mail->CharSet="utf-8";
//設定信件編碼
$mail->Encoding = "base64";
//設置郵件格式為HTML
$mail->IsHTML(true);
//每50字換行
$mail->WordWrap = 50;

if (is_uploaded_file($_FILES['AttFile']['tmp_name']))
{
$AtF = $_FILES['AttFile']['name'];
}else {
}
//傳送附檔
$mail->AddAttachment($_FILES['AttFile']['tmp_name'], $AtF);
//郵件標題
$mail->Subject= $_POST["SendClass"] . $_POST["MailTitle"];
//郵件內容
$mail->Body ="
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">
</head>
<body>
" . ereg_replace("\n", "<BR>\n", $_POST["MailBody"]) . "
</body>
</html>
";

//附加內容
$mail->AltBody = $_POST["MailBody"];

//寄送郵件
if(!$mail->Send())
{
echo "郵件無法順利寄出!";
echo "Mailer Error: " . $mail->ErrorInfo;
exit;
}
if ($_FILES['AttFile']['tmp_name'])
{
unlink($_FILES['AttFile']['tmp_name']);
}
?>
<script labguage="javascript">
alert("<?php echo $SendNum; ?>");
</script>
<?php
}else{
}
?>


以下插入<body>中

<form action="MailSend.php" method="post" enctype="multipart/form-data" name="form1" id="form1">
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100" height="50" nowrap="nowrap">
<strong>收件者:</strong>
</td>
<td width="300" nowrap="nowrap">
<label>
<input name="MailTo" type="text" id="MailTo" size="47" />
</label>
</td>
</tr>
<tr>
<td width="100" height="50" nowrap="nowrap">
<strong>標題:</strong>
</td>
<td width="300" nowrap="nowrap">
<label>
<select name="SendClass" id="SendClass">
<option value="[公告]">[公告]</option>
<option value="[通知]">[通知]</option>
<option value="">自訂</option>
</select>
</label>
<label>
<input name="MailTitle" type="text" id="MailTitle" size="47" />
</label>
</td>
</tr>
<tr>
<td width="100" nowrap="nowrap">
<strong>內文:</strong>
</td>
<td width="300">
<label>
<textarea name="MailBody" id="MailBody" cols="50" rows="5"></textarea>
</label>
</td>
</tr>
<tr>
<td nowrap="nowrap">
<strong>附件:</strong>
</td>
<td width="300"><label>
<input type="file" name="AttFile" id="AttFile" />
</label>
</td>
</tr>
</table>
<label>
<input type="submit" name="MailSend" id="MailSend" value="送出" />
</label>
</form>

##EasyReadMore##