2009-01-13

ColdFusion,CFM 將 email 格式轉為address與name

由 CFPOP TAG 讀回來的 寄件人等等的資料都是以 "姓名"<地址> 這種方式儲存
但是要姓名或是地址取出來就麻煩了~

如果不用 JAVAMAIL API 的話應該就是用字串去判斷了
還好 CFM 本身有 JAVA 的底子~ 所以很容易的就可以把字串分開了~

PS. 必須將電子郵件設定為建構子才可以取出地址與名字
PS. 如果 TO 的電子郵件為多個 必須先用 字串切割把每個地址切出來

important : 因為我已經將 POP 取回來的資料放入資料庫中
但是讀出來的資料與 cfpop 讀回來的 from , to 都是一樣的格式

範例碼 ==  請自己摳回去用 DW 整理一下巴 
==============


<cfprocessingdirective pageencoding="utf-8">

<cfcontent type="text/html; charset=utf-8">

<cfset setEncoding("URL", "utf-8")>

<cfset setEncoding("Form", "utf-8")>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>無標題文件</title>

</head>

<cfquery datasource="maildb" name="query">

select *

from maildb

</cfquery>

<CFOBJECT type="java" class="javax.mail.internet.InternetAddress" name="mailObj">

<body>

<table>

<cfoutput query="query">

<tr>

<cfscript>

mailObj.init(m_from);

</cfscript>

<td>#mailObj.getAddress()#</td>

<td>#mailObj.getPersonal()#</td>

<cfscript>

mailObj.init(m_replyto);

</cfscript>

<td>#mailObj.getAddress()#</td>

<td>#mailObj.getPersonal()#</td>

</tr>

</cfoutput>

</table>

</body>

</html>

沒有留言: