2017年3月25日 星期六

Perl Net::SMTP::TLS attach file

Reference;
http://www.perlmonks.org/?node_id=784574

用 $smtp->datasend 傳附檔內容時,因為 gmail 接收資料有長度限制,如果一次傳送大量資料會出錯。變通辦法是用 split 將資料分段送出。


use Net::SMTP::TLS;
use MIME::Lite;

$gmail_from = 'account@gmail.com';
@gmail_bcc_png = ('bcc@gmail.com');
$mail_subject = "<mail_subjuct>";

$msg = MIME::Lite->new(
From       => $gmail_from,
    To         => $gmail_from,
    Subject    => $mail_subject,
Type     =>'multipart/mixed',
);
$msg->attach(
Type => 'image/png',
Path => '<file full path>',
Filename => 'report1.png',
Disposition => 'attachment'
);

$smtp = new Net::SMTP::TLS(
'smtp.gmail.com',
Port    => 587,
User    => '<account@gmail.com>',
Password=> '<password>',
Timeout => 30
);

$smtp->mail($gmail_from);

$smtp->bcc(@gmail_bcc_png);

$smtp->data();
  @tmp = split(/\n/, $msg->as_string);
foreach $line (@tmp) {
$line = $line . "\n";
$smtp->datasend( $line );
}
$smtp->dataend();

$smtp->quit;

2017年3月15日 星期三

webpage or html file transfer to image

Reference:
http://phantomjs.org/screen-capture.html

下載 PhantomJS 解壓縮,把 phantomjs.exe 加到 PATH。

把網頁轉成圖片:
1. 編輯 web_2_png.js,內容如下
var page = require('webpage').create();
page.open('http://github.com/', function() {
  page.render('github.png');
  phantom.exit();
});
2. 執行 phantomjs web_2_png.js 即可產生圖片


把 html 檔案轉成圖片:
1. 編輯 html_2_png.js,內容如下
var page = require('webpage').create();
page.open('file:///c:/tmp/myfile.htm', function() {
  page.render('myfile.png');
  phantom.exit();
});
2. 執行 phantomjs html_2_png.js 即可產生圖片

2017年3月13日 星期一

跑步記錄 2017/3/12

為 4/22 桐花路跑 23K 準備。下星期再把距離加長一點。
這次跑完膝蓋不酸、小腿不酸、大腿不酸,反而是大腿和骨盆間的關節在酸。


2017年3月11日 星期六

3com switch 4226T 異常事件記錄

狀況:
新設備設定好 IP address 後接到 3com 4226T,從別台電腦 ping 這個設備,只收到兩個 reply 然後就一直 timeout。

Try 1: 猜測是不是 IP address 衝突。把設備網路線拔掉,ping 完全沒有回應。
Try 2: router 清除 arp。狀況一樣。
Try 3: 查詢 3com 4226T MAC address table。設備接在 port 7,查詢結果居然顯示接在 port 17!見鬼了~~~~

暫時解法:
將設備的 MAC address 手動加到 port 7,用 ping 測試就正常了。

因為其他的接在這一台 3com 4226T 的網路運作都正常,找時間將這台 3com 4226T 重新開機試試看。

2017年3月4日 星期六

2017/3/4 第二屆苗栗超級馬拉松

10K 中途折返時,看到許多 21K 的還在我後面 ^___^
下星期自己試跑 21K,如果可以 3.5 小時內回來,下次就可以報名 21K了。


2017年3月2日 星期四

連線到印表機 生效的原則 無法連接 列印佇列

新增網路印表機時出線的錯誤訊息:
連線到印表機
由於您電腦的一個生效的原則,所以您無法連接到這個列印佇列,請連絡您的系統管理員。


解法為自行安裝驅動程式。
步驟:
1. 準備印表機的驅動程式。
2. 安裝本地印表機,連接埠選 TCPIP,輸入印表機 IP address。
3. 驅動程式選擇由磁片安裝,並瀏覽到放區棟程式的目錄。
4. 安裝驅動程式後,不共享印表機
5. 再次新增網路印表機,安裝完成後可將本地印表機移除

參考:
您電腦上一個生效原則阻止你連線到這個列印佇列,請聯絡您的系統管理員

2017年3月1日 星期三

Exchange 2010 move mailbox

How to Move Mailboxes in Exchange Server 2010


Exchange 2010 SP2 搬移 mailbox 後無法刪除原信箱,retry 次數過多造成很久才結束。
修改 C:\Program Files\Microsoft\Exchange Server\V14\Bin\MSExchangeMailboxReplication.exe.config
將 MaxCleanupRetries = "5" 改為 "1"

Reference:
MAPIEXCEPTIONUNEXPECTEDMAILBOXSTATE: UNABLE TO DELETE MAILBOX


升級到 SP3 可以解此問題。尚未升級前可以用指令刪除沒用到的信箱。
1.) Run the command to find the specific mailboxes that were impacted by this bug.

Get-MailboxStatistics -Database <MAILBOXDATABASE> | Where { $_.DisconnectReason -eq “SoftDeleted” } | fl LegacyDN, DisplayName, MailboxGUID,DisconnectReason

 2.) Run this command to remove those disconnected mailboxes cleanly.

Remove-StoreMailbox –Database <MAILBOXDATABASE> –Identity <MAILBOXGUID> –MailboxState Softdeleted

Reference:
Error with moving mailbox in Exchange 2010 SP2 RU3+

Exchange 2010 mail database create and mount fail

Reference:
Failed to create and mount database exchange 2010

Error message:
Couldn't mount the database that you specified. Specified database: <MailDB>; Error code: An Active Manager operation failed. Error The database action failed. Error: Operation failed with message: MapiExceptionNotFound: Unable to mount database. (hr=0x8004010f, ec=-2147221233)
. [Database: <MailDB>, Server: <MAIL server>].

SOLUTION:
Microsoft notes that the issue is related to having conflicting Domain Controller and Global Catalogue Server entries.  So do the following:
1.  Open EMC and right-click on “Organization Configuration”.  Choose “Modify Configuration Domain Controller”.
2.  Specify the domain and the DC.
3.  Open EMC and right-click on “Recipient Configuration”.  Choose “Modify Recipient Scope”.
4.  Specify the global catalog server.  Make sure it is the same as the chosen DC.

上面步驟做完後,再試一次錯誤變成
Couldn't mount the database that you specified. Specified database: <MailDB>; Error code: An Active Manager operation failed. Error Couldn't find the specified mailbox database with GUID 'b8974f86-80d6-4cfc-ae68-6b5fa110xxxx'.. [Database: <MailDB>, Server: <MAIL server>].

再次 mount MailDB 卻成功了!