OSDN Git Service

b7e69d0df955848ef5e4e8e3306129f73d77c249
[hayashilib/hayashi.git] / src / jp / co / areaweb / tools / mail / YuuMailXml.java
1 /*\r
2  * YuuMail.java\r
3  *\r
4  * Created on 2000/08/09, 14:07\r
5  */\r
6 \r
7 package jp.co.areaweb.tools.mail;\r
8 \r
9 import java.io.File;\r
10 import java.io.FileInputStream;\r
11 import java.io.IOException;\r
12 import javax.xml.parsers.*;         // jaxp.jar\r
13 import org.w3c.dom.*;               // jaxp.jar\r
14 \r
15 /** Eメールを送信するためのクラス\r
16  * JavaMailを使用する機能拡張版\r
17  * @author techno-infinitus Co,Ltd. Yuu Hayashi.\r
18  * @version 00-00\r
19  */\r
20 public class YuuMailXml extends SendMail {\r
21     /** \r
22      * Creates new YuuMail \r
23      * @param siteData  DATA\r
24      */\r
25     public YuuMailXml(SiteData siteData) {\r
26         super(siteData);\r
27     }\r
28     public YuuMailXml(String propertyFile) {\r
29         super(propertyFile);\r
30     }\r
31 \r
32     public void setXmlData(Node sendMailTag) throws java.io.FileNotFoundException {\r
33         NodeList nl = sendMailTag.getChildNodes();\r
34         for (int i=0; i < nl.getLength(); i++) {\r
35             Node mailDataTag = nl.item(i);\r
36             if (mailDataTag.getNodeType() == Node.ELEMENT_NODE) {\r
37                 String nodeName = mailDataTag.getNodeName();\r
38                 if (nodeName.equals("to")) {\r
39                     this.setTo(mailDataTag.getFirstChild().getNodeValue());\r
40                 }\r
41                 else if (nodeName.equals("cc")) {\r
42                     Node ccNode = mailDataTag.getFirstChild();\r
43                     if (ccNode != null) {\r
44                         this.setCc(ccNode.getNodeValue());\r
45                     }\r
46                 }\r
47                 else if (nodeName.equals("bcc")) {\r
48                     Node bccNode = mailDataTag.getFirstChild();\r
49                     if (bccNode != null) {\r
50                         this.setBcc(bccNode.getNodeValue());\r
51                     }\r
52                 }\r
53                 else if (nodeName.equals("from")) {\r
54                     Node fromNode = mailDataTag.getFirstChild();\r
55                     if (fromNode != null) {\r
56                         this.setFrom(fromNode.getNodeValue());\r
57                     }\r
58                 }\r
59                 else if (nodeName.equals("subject")) {\r
60                     this.setSubject(mailDataTag.getFirstChild().getNodeValue());\r
61                 }\r
62                 else if (nodeName.equals("content")) {\r
63                     this.setContent(mailDataTag.getFirstChild().getNodeValue());\r
64                 }\r
65                 else if (nodeName.equals("attachment")) {\r
66                         Node attachNode = mailDataTag.getFirstChild();\r
67                         File attachFile = new File(attachNode.getNodeValue());\r
68                     Attr attrNode = (Attr)mailDataTag.getAttributes().getNamedItem("file");\r
69                     if (attrNode != null) {\r
70                         this.setAttachment(attachFile, attrNode.getValue());\r
71                     }\r
72                     else {\r
73                         this.setAttachment(attachFile);\r
74                     }\r
75                 }\r
76             }\r
77         }\r
78     }\r
79     \r
80     public void setXmlData(String inputFile) throws IOException {\r
81         try {\r
82             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r
83             DocumentBuilder builder = factory.newDocumentBuilder();\r
84             Node rootNode = builder.parse(new FileInputStream(inputFile));\r
85             NodeList rootNodeList = rootNode.getChildNodes();\r
86             for (int j=0; j < rootNodeList.getLength(); j++) {\r
87                 setXmlData(rootNodeList.item(j));\r
88             }\r
89         }\r
90         catch (javax.xml.parsers.ParserConfigurationException pce) {\r
91             pce.printStackTrace();\r
92             throw new IOException("javax.xml.parsers.ParserConfigurationException");\r
93         }\r
94         catch (org.xml.sax.SAXException saxe) {\r
95             saxe.printStackTrace();\r
96             throw new IOException("org.xml.sax.SAXException");\r
97         }\r
98     }\r
99     \r
100     /**\r
101      * "jp.co.areaweb.tools.common.YuuMailXml <property.xml> <sendMail.xml>"\r
102      * @param args      parameter\r
103      */\r
104     public static void main(java.lang.String[] args) {\r
105         String inputfile;\r
106         String propertyFile;\r
107 \r
108         if (args.length < 2) {\r
109             inputfile = "sendMail.xml";\r
110             if (args.length < 1) {\r
111                 propertyFile = "property.xml";\r
112             }\r
113             else {\r
114                 propertyFile = args[0];\r
115             }\r
116         }\r
117         else {\r
118             inputfile = args[1];\r
119             propertyFile = args[0];\r
120         }\r
121 \r
122         try {\r
123             YuuMailXml mail = new YuuMailXml(new SiteDataXml(propertyFile));\r
124             mail.setXmlData(inputfile);\r
125             mail.send();\r
126         }\r
127         catch (Exception e) {\r
128             e.printStackTrace();\r
129         }\r
130     }\r
131 }