2009年10月16日 星期五

自動發信

我使用的是JAVAMAIL來達成自動發信的功能,
好處是你只要有一個有提供外部SMTP的信箱,
不用自己架伺服器,
缺點是在發信的時候需要一些時間,
以下我是使用GMAIL為例


try{
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", "smtp.gmail.com"); //設定使用GMAIL的SMTP
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465"); //465是GMAIL提供的SMTP PORT
props.setProperty("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");


String username = GMAIL帳號
String password = GMAIL密碼

Session sendMailSession;
Store store;
Transport transport;
sendMailSession = Session.getInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username ,password );
}});


// -- Create a new message --
Message msg = new MimeMessage(sendMailSession);

// -- Set the FROM and TO fields --
msg.setFrom(new InternetAddress("寄件者信箱"));
msg.setRecipients(Message.RecipientType.TO,
InternetAddress.parse("收件者信箱",false));
msg.setSubject("標題");
msg.setText("內容");
msg.setSentDate(new Date());
Transport.send(msg);

// system.out.println("Message sent.");



// -- Set the FROM and TO fields --

}
catch(MessagingException m)
{
out.println(m.toString());
}


RSS修改

原本我的RSS是利用開啟一個XML新檔案然後寫入,
但是後來發現這個方法既不夠即時,
而且也會浪費主機空間,
唯一的好處是會有一份XML的備份檔,
不怕資料庫當掉,
而我後來修改成直接頁面PRINT出來,
只要在JSP檔頭加入
response.setHeader("content-type","text/xml;charset=utf-8");
將檔案判斷成XML,
就可以直接利用JSP頁面即時找尋資料供RSS使用.

2009年9月28日 星期一

本週進度

上週因為在忙著準備專題期中的預備工作,
所以進度稍微暫停,
而本週在石作自動發送mail的功能,
原本要自己架一個mail server來實做,
但是搜尋之後發現不只要固定IP,
還要有dns來定位,
所以改變方向利用javamail套件來實做,
目前已經可以發送固定內容的email,
過幾天再來整合資料庫和專題內容.

2009年9月19日 星期六

本週進度

由於之前都在作其他計畫的內容,
所以專題進度稍微停止。
而本週的進度在於修改報告與構想個人化的架構,
目前個人化的部份是暫定使用者於註冊時提供三個喜好分類選項,
而在登入時檢查喜好分類並利用跳出視窗提示,
這部份完成後再考慮e-mail或簡訊自動提醒。

2009年7月25日 星期六

GOOGLE圖表問題

由於一開始圖表中的中文一直都出不來,
我原本以為是資料庫與網頁編碼設成BIG5的問題,
花了一兩天改成測試UTF-8還是無法正常顯示,
後來我開了範例網頁發現範例也無法顯示中文,
上網查了以後才發現要轉成ASCII(像是%0D%0A)格式,
但是這部份要改起來很花時間,
所以到最後我決定使用跟QRCODE一樣的模式,
利用表單GET方法來抓取數值,
跳出視窗來顯示圖表,
以下是GET方法的詳細內容:
<'form action="http://chart.apis.google.com/chart" name="form1" method="get" target="_blank">
<'input type="hidden" size="200x200" maxlengh="8" name="chs" value="600x300"/>
<'input type="hidden" size="200x200" maxlengh="8" name="cht" value="p"/>
<'input type="hidden" size="200x200" maxlengh="8" name="chd" value="t:<%out.print(male);%>,<%out.print(female);%>,<%out.print(other);%>"/>
<'input type="hidden" size="200x200" maxlengh="8" name="chco" value="ff00ff"/>
<'input type="hidden" size="200x200" maxlengh="8" name="chts" value="0000ff,24"/>
<'input type="hidden" size="200x200" maxlengh="8" name="chtt" value="性別"/>
<'input type="hidden" size="200x200" maxlengh="8" name="chxt" value="x,y,r,t"/>
<'input type="hidden" size="200x200" maxlengh="8" name="chxl" value="0:男:(<%out.print(male);%>)女(<%out.print(female);%>)未知(<%out.print(other);%>)"/>
<'input value="性別" type="submit"/>
<'/form>

本週進度

因為最近身體有些不舒服...
所以專題進度比較慢,
而且大部分都是在做計畫的事情,
專題部分我已經放了一張GOOGLE圖表了,
其中有一些問題我會寫在另一篇上.

2009年7月16日 星期四

本週進度

由於上週實驗室電腦電源燒毀,
而且忙於其他計畫的提案構想,
所以進度暫時停止。
而本週預計開始看Google chart的相關資料,
並想辦法加進去專題裡。
不過因為實驗室電腦這兩天才修好,
還要把其他計畫的基本環境架起來,
所以進度可能還會稍微延遲一下。