1 package com.ozacc.mail.mock;
2
3 import java.io.UnsupportedEncodingException;
4 import java.util.ArrayList;
5 import java.util.List;
6 import java.util.Properties;
7
8 import javax.mail.MessagingException;
9 import javax.mail.Session;
10 import javax.mail.internet.InternetAddress;
11 import javax.mail.internet.MimeMessage;
12
13 import com.ozacc.mail.Mail;
14 import com.ozacc.mail.MailBuildException;
15 import com.ozacc.mail.MailException;
16 import com.ozacc.mail.SendMail;
17 import com.ozacc.mail.impl.MimeMessageBuilder;
18
19 /***
20 * SendMailImpl¥¯¥é¥¹¤ÎMock¡£<br>
21 * ¼Â¸¤¹¤?SMTP¥µ¡¼¥Ð¤òÀßÄꤷ¤Æ¤â¡¢¼ÂºÝ¤Ë¤ÏÁ÷¿®¤µ¤?¤Þ¤»¤ó¡£
22 * ¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤ò͸ú¤Ë¤¹¤?¤È¡¢¥á¡¼¥?¤òÁ÷¿®¤¹¤?¥¿¥¤¥ß¥ó¥°¤Ç¥³¥ó¥½¡¼¥?¤ËÁ÷¿®¥á¡¼¥?ÆâÍÆ¤¬½ÐÎϤµ¤?¤Þ¤¹¡£
23 * <p>
24 * Mail¥¤¥ó¥¹¥¿¥ó¥¹¤? addExpectedMail() ¤Ë¥»¥Ã¥È¤· verify() ¥á¥½¥Ã¥É¤ò¼Â¹Ô¤¹¤?¤È¡¢send() ¤µ¤?¤¿Mail¥¤¥ó¥¹¥¿¥ó¥¹¤ÈÁ´¤Æ¤Î¥×¥úÁѥƥ£(XHeader¤ò½?¤¯)¤¬°?Ãפ·¤Ê¤±¤?¤ÐAssertionFailedException¤¬¥¹¥ú½¼¤µ¤?¤Þ¤¹¡£
25 * <p>
26 * Î㤨¤Ð¡¢send() ¤µ¤?¤¿Mail¥¤¥ó¥¹¥¿¥ó¥¹¤ÎFrom¥¢¥É¥?¥¹¤È·?̾¤À¤±¥Á¥§¥Ã¥¯¤·¡¢¤½¤Î¾¤Î¥×¥úÁѥƥ£¤Ï¥Á¥§¥Ã¥¯¤·¤¿¤¯¤Ê¤¤¾?¹ç¤Ï¡¢MockMail¥¤¥ó¥¹¥¿¥ó¥¹¤ò»ÈÍѤ·¤Þ¤¹¡£
27 * <pre>Mail sentMail = new Mail();
28 *sentMail.setFrom("from@example.com");
29 *sentMail.setSubject("·?̾");
30 *sentMail.addTo("to@example.com");
31 *sentMail.setText("ưŪÀ¸À®¤µ¤?¤?ËÜʸ");
32 *
33 *Mail expectedMail = new Mail();
34 *expectedMail.setFrom("from@example.com");
35 *expectedMail.setSubject("·?̾");
36 *
37 *MockMail mockMail = new MockMail();
38 *mockMail.setFrom("from@example.com");
39 *mockMail.setSubject("·?̾");
40 *
41 *MockSendMail sendMail = new MockSendMail();
42 *sendMail.addExpectedMail(expectedMail);
43 *sendMail.send(sentMail);
44 *sendMail.verify(); // ¼ºÇÔ AssertionFailedException
45 *
46 *sendMail = new MockSendMail();
47 *sendMail.addExpectedMail(mockMail);
48 *sendMail.send(sentMail);
49 *sendMail.verify(); // À®¸?</pre>
50 * <p>
51 * <strong>Ã?:</strong> MultipartMail¤ÎźÉÕ¥Õ¥¡¥¤¥?¤ÏÈæ³ÓÂоݤˤʤê¤Þ¤»¤ó¡£
52 *
53 * @since 1.0
54 * @author Tomohiro Otsuka
55 * @version $Id: MockSendMail.java,v 1.9 2004/09/17 23:07:24 otsuka Exp $
56 */
57 public class MockSendMail implements SendMail {
58
59 /*** ¥Ç¥Õ¥©¥?¥È¤Î¥×¥úÁÈ¥³¥?¡£¡Ösmtp¡× */
60 public static final String DEFAULT_PROTOCOL = "smtp";
61
62 /*** ¥Ç¥Õ¥©¥?¥È¤Î¥Ý¡¼¥È¡£¡Ö-1¡× */
63 public static final int DEFAULT_PORT = -1;
64
65 /*** ¥Ç¥Õ¥©¥?¥È¤ÎSMTP¥µ¡¼¥Ð¡£¡Ölocalhost¡× */
66 public static final String DEFAULT_HOST = "localhost";
67
68 /*** ISO-2022-JP */
69 public static final String JIS_CHARSET = "ISO-2022-JP";
70
71 private static final String RETURN_PATH_KEY = "mail.smtp.from";
72
73 private String protocol = DEFAULT_PROTOCOL;
74
75 private String host = DEFAULT_HOST;
76
77 private int port = DEFAULT_PORT;
78
79 private String username;
80
81 private String password;
82
83 private String charset = JIS_CHARSET;
84
85 private String returnPath;
86
87 private List sentMails;
88
89 private List mimeMessages;
90
91 private List expectedMails;
92
93 private boolean debug;
94
95 /***
96 * ¥³¥ó¥¹¥È¥é¥¯¥¿¡£
97 */
98 public MockSendMail() {
99 super();
100 initialize();
101 }
102
103 /***
104 * MockSendMail¥¤¥ó¥¹¥¿¥ó¥¹¤ò½é´?²½¤·¤Þ¤¹¡£
105 */
106 public void initialize() {
107 sentMails = new ArrayList();
108 expectedMails = new ArrayList();
109 mimeMessages = new ArrayList();
110 }
111
112 /***
113 * Á÷¿®¤µ¤?¤¿¥á¡¼¥?¤ÎMimeMessage¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£
114 * Á÷¿®½ç¤ÎÇÛÎó¤Ç¤¹¡£
115 *
116 * @return Á÷¿®¥á¡¼¥?¤ÎMimeMessage¥¤¥ó¥¹¥¿¥ó¥¹ÇÛÎ?
117 */
118 public MimeMessage[] getMimeMessages() {
119 return (MimeMessage[])mimeMessages.toArray(new MimeMessage[mimeMessages.size()]);
120 }
121
122 /***
123 * Á÷¿®¤µ¤?¤¿Mail¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤·¤Þ¤¹¡£Á÷¿®½ç¤ÎÇÛÎó¤Ç¤¹¡£
124 *
125 * @return Á÷¿®¥á¡¼¥?¤ÎMail¥¤¥ó¥¹¥¿¥ó¥¹ÇÛÎ?
126 */
127 public Mail[] getSentMails() {
128 return (Mail[])sentMails.toArray(new Mail[sentMails.size()]);
129 }
130
131 /***
132 * ¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤¬Í¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤?¤«È½Äꤷ¤Þ¤¹¡£
133 *
134 * @return Returns ͸ú¤Ë¤Ê¤Ã¤Æ¤¤¤?¾?¹? true
135 */
136 public boolean isDebug() {
137 return debug;
138 }
139
140 /***
141 * ¥Ç¥Ð¥Ã¥°¥â¡¼¥É(¥³¥ó¥½¡¼¥?¤Ë¥úÁ°¤ò½ÐÎÏ)¤ò͸ú¤Ë¤·¤Þ¤¹¡£
142 * ¥Ç¥Õ¥©¥?¥È¤Ï̵¸ú¤Ç¤¹¡£
143 *
144 * @param debug ¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤ò͸ú¤Ë¤¹¤?¾?¹? true
145 */
146 public void setDebug(boolean debug) {
147 this.debug = debug;
148 }
149
150 /***
151 * ¥Ç¥Ð¥Ã¥°¥â¡¼¥É¤¬Í¸ú¤Î¤È¤¡¢»ØÄꤵ¤?¤¿¥á¥Ã¥»¡¼¥¸¤ò¥³¥ó¥½¡¼¥?¤Ë½ÐÎϤ·¤Þ¤¹¡£
152 *
153 * @param message ¥³¥ó¥½¡¼¥?½ÐÎϤ¹¤?¥á¥Ã¥»¡¼¥¸
154 */
155 private void debug(String message) {
156 if (debug) {
157 System.out.println("[" + Thread.currentThread().getName() + "] DEBUG "
158 + getClass().getName() + " - " + message);
159 }
160 }
161
162 /***
163 *
164 * @param expectedMail
165 */
166 public void addExpectedMail(Mail expectedMail) {
167 expectedMails.add(expectedMail);
168 }
169
170 /***
171 *
172 * @param expectedMails
173 */
174 public void addExpectedMail(Mail[] expectedMails) {
175 for (int i = 0; i < expectedMails.length; i++) {
176 addExpectedMail(expectedMails[i]);
177 }
178 }
179
180 /***
181 *
182 * @throws AssertionFailedException
183 */
184 public void verify() throws AssertionFailedException {
185 debug("======================================================");
186 debug(" verify() ");
187 debug("======================================================");
188
189
190 int numOfExpectedMails = expectedMails.size();
191 int numOfSentMails = sentMails.size();
192 if (numOfExpectedMails != numOfSentMails) {
193 throw new AssertionFailedException("´?Âԥ᡼¥?¿?<" + numOfExpectedMails + ">¤ÈÁ÷¿®¥á¡¼¥?¿?<"
194 + numOfSentMails + ">¤¬°?Ãפ·¤Þ¤»¤ó¤Ç¤·¤¿¡£");
195 }
196
197 debug("´?Âԥ᡼¥?¿ô¤ÈÁ÷¿®¥á¡¼¥?¿ô¤Ï°?Ãפ·¤Þ¤·¤¿¡£[" + numOfExpectedMails + "ÄÌ]");
198
199
200 for (int i = 0; i < numOfExpectedMails; i++) {
201 Mail expected = (Mail)expectedMails.get(i);
202 Mail sent = (Mail)sentMails.get(i);
203 debug((i + 1) + "ÄÌÌܤΥÁ¥§¥Ã¥¯¤ò³«»Ï¤·¤Þ¤¹¡£("
204 + ((expected instanceof MockMail) ? "MockMail" : "Mail") + " - Mail)");
205 checkEquality(expected, sent, i + 1);
206 debug((i + 1) + "ÄÌÌܤδ?Âԥ᡼¥?¤ÈÁ÷¿®¥á¡¼¥?ÆâÍÆ¤Ï°?Ãפ·¤Þ¤·¤¿¡£");
207 }
208
209 debug("verify¥×¥úÁ»¥¹¤ÏÁ´¤ÆÀ®¸ù¤·¤Þ¤·¤¿¡£");
210 debug("======================================================");
211 }
212
213 /***
214 * @param expected
215 * @param sent
216 * @throws AssertionFailedException
217 */
218 public void checkEquality(Mail expected, Mail sent, int num) throws AssertionFailedException {
219 boolean mockMode = false;
220 if (expected instanceof MockMail) {
221 mockMode = true;
222 }
223
224
225 if (expected.isMultipartMail()) {
226
227
228 if (!mockMode) {
229 if ((expected.getHtmlText() == null && sent.getHtmlText() != null)
230 || (expected.getHtmlText() != null && sent.getHtmlText() == null)
231 || (!expected.getHtmlText().equals(sent.getHtmlText()))) {
232 throwExceptioWithMessage("HTMLËÜʸ", expected.getHtmlText(), sent.getHtmlText(),
233 num);
234 }
235 } else if (mockMode && expected.getHtmlText() != null) {
236 if (!expected.getHtmlText().equals(sent.getHtmlText())) {
237 throwExceptioWithMessage("HTMLËÜʸ", expected.getHtmlText(), sent.getHtmlText(),
238 num);
239 }
240 }
241 }
242
243
244 if (!mockMode || (mockMode && expected.getReturnPath() != null)) {
245 if (expected.getReturnPath() != null && sent.getReturnPath() != null) {
246 if (!expected.getReturnPath().equals(sent.getReturnPath())) {
247 throwExceptioWithMessage("Return-Path¥¢¥É¥?¥¹", expected.getReturnPath()
248 .toUnicodeString(), sent.getReturnPath().toUnicodeString(), num);
249 }
250 } else if ((expected.getReturnPath() != null && sent.getReturnPath() == null)
251 || (expected.getReturnPath() == null && sent.getReturnPath() != null)) {
252 throw new AssertionFailedException();
253 }
254 }
255
256
257 InternetAddress[] expectedAddresses = expected.getTo();
258 InternetAddress[] sentAddresses = sent.getTo();
259 if (!mockMode || (mockMode && expectedAddresses.length > 0)) {
260 if (expectedAddresses.length != sentAddresses.length) {
261 throwExceptioWithMessage("To¥¢¥É¥?¥¹¿?", Integer.toString(expectedAddresses.length),
262 Integer.toString(sentAddresses.length), num);
263 }
264 for (int i = 0; i < expectedAddresses.length; i++) {
265 if (!expectedAddresses[i].equals(sentAddresses[i])) {
266 throwExceptioWithMessage("To¥¢¥É¥?¥¹", expectedAddresses[i].toUnicodeString(),
267 sentAddresses[i].toUnicodeString(), num);
268 }
269 }
270 }
271
272
273 expectedAddresses = expected.getCc();
274 sentAddresses = sent.getCc();
275 if (!mockMode || (mockMode && expectedAddresses.length > 0)) {
276 if (expectedAddresses.length != sentAddresses.length) {
277 throwExceptioWithMessage("Cc¥¢¥É¥?¥¹¿?", Integer.toString(expectedAddresses.length),
278 Integer.toString(sentAddresses.length), num);
279 }
280 for (int i = 0; i < expectedAddresses.length; i++) {
281 if (!expectedAddresses[i].equals(sentAddresses[i])) {
282 throwExceptioWithMessage("Cc¥¢¥É¥?¥¹", expectedAddresses[i].toUnicodeString(),
283 sentAddresses[i].toUnicodeString(), num);
284 }
285 }
286 }
287
288
289 expectedAddresses = expected.getBcc();
290 sentAddresses = sent.getBcc();
291 if (!mockMode || (mockMode && expectedAddresses.length > 0)) {
292 if (expectedAddresses.length != sentAddresses.length) {
293 throwExceptioWithMessage("Bcc¥¢¥É¥?¥¹¿?", Integer.toString(expectedAddresses.length),
294 Integer.toString(sentAddresses.length), num);
295 }
296 for (int i = 0; i < expectedAddresses.length; i++) {
297 if (!expectedAddresses[i].equals(sentAddresses[i])) {
298 throwExceptioWithMessage("Bcc¥¢¥É¥?¥¹", expectedAddresses[i].toUnicodeString(),
299 sentAddresses[i].toUnicodeString(), num);
300 }
301 }
302 }
303
304
305 if (!mockMode || (mockMode && expected.getReplyTo() != null)) {
306 if (expected.getReplyTo() != null && sent.getReplyTo() != null) {
307 if (!expected.getReplyTo().equals(sent.getReplyTo())) {
308 throwExceptioWithMessage("ReplyTo¥¢¥É¥?¥¹",
309 expected.getReplyTo().toUnicodeString(), sent.getReplyTo()
310 .toUnicodeString(), num);
311 }
312 } else if ((expected.getReplyTo() != null && sent.getReplyTo() == null)
313 || (expected.getReplyTo() == null && sent.getReplyTo() != null)) {
314 throw new AssertionFailedException();
315 }
316 }
317
318
319 if (!mockMode || (mockMode && expected.getSubject().length() > 0)) {
320 if (!expected.getSubject().equals(sent.getSubject())) {
321 throwExceptioWithMessage("·?̾", expected.getSubject(), sent.getSubject(), num);
322 }
323 }
324
325
326 if (!mockMode || (mockMode && expected.getText().length() > 0)) {
327 if (!expected.getText().equals(sent.getText())) {
328 throwExceptioWithMessage("ËÜʸ", expected.getText(), sent.getText(), num);
329 }
330 }
331
332 }
333
334 /***
335 * °ú¿ô¤ÎÃͤò¼õ¤±¤Æ¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸¤òÀ¸À®¤·¡¢AssertionFailedError¤ò¥¹¥ú½¼¤·¤Þ¤¹¡£
336 * @param expectedValue
337 * @param sentValue
338 * @param num
339 * @throws AssertionFailedException
340 */
341 private void throwExceptioWithMessage(String name, String expectedValue, String sentValue,
342 int num) throws AssertionFailedException {
343 String message = num + "ÈÖÌܤΥá¥Ã¥»¡¼¥¸¤Ç¡¢¡Ö" + name + "¡×¤¬°?Ãפ·¤Þ¤»¤ó¤Ç¤·¤¿¡£´?ÂÔÃÍ='" + expectedValue
344 + "', Á÷¿®ÃÍ='" + sentValue + "'";
345
346 debug(message);
347 debug("verify¥×¥úÁ»¥¹¤Ï¼ºÇÔ¤·¤Þ¤·¤¿¡£");
348 debug("******************************************************");
349
350 throw new AssertionFailedException(message);
351 }
352
353 /***
354 * @see com.ozacc.mail.SendMail#send(com.ozacc.mail.Mail)
355 */
356 public void send(Mail mail) throws MailException {
357 send(new Mail[] { mail });
358 }
359
360 /***
361 * @see com.ozacc.mail.SendMail#send(com.ozacc.mail.Mail[])
362 */
363 public void send(Mail[] mails) throws MailException {
364 debug("SMTP¥µ¡¼¥Ð[" + host + "]¤ËÀܳ¤¹¤?¥Õ¥ê¡£");
365 debug("SMTP¥µ¡¼¥Ð[" + host + "]¤ËÀܳ¤·¤¿¥Õ¥ê¡£");
366
367 Session session = Session.getInstance(new Properties());
368 for (int i = 0; i < mails.length; i++) {
369
370 Mail mail = mails[i];
371
372
373 MimeMessage message = new MimeMessage(session);
374 MimeMessageBuilder builder = new MimeMessageBuilder(message);
375 try {
376 builder.buildMimeMessage(mail);
377 } catch (UnsupportedEncodingException e) {
378 throw new MailBuildException("¥µ¥Ý¡¼¥È¤µ¤?¤Æ¤¤¤Ê¤¤Ê¸»ú¥³¡¼¥É¤¬»ØÄꤵ¤?¤Þ¤·¤¿¡£", e);
379 } catch (MessagingException e) {
380 throw new MailBuildException("MimeMessage¤ÎÀ¸À®¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£", e);
381 }
382 mimeMessages.add(message);
383
384 debug("¥á¡¼¥?¤òÁ÷¿®¤¹¤?¥Õ¥ê¡£");
385 sentMails.add(mail);
386 debug(mail.toString());
387 debug("¥á¡¼¥?¤òÁ÷¿®¤·¤¿¥Õ¥ê¡£");
388 }
389
390 debug("SMTP¥µ¡¼¥Ð[" + host + "]¤È¤ÎÀܳ¤òÀÚÃǤ¹¤?¥Õ¥ê¡£");
391 debug("SMTP¥µ¡¼¥Ð[" + host + "]¤È¤ÎÀܳ¤òÀÚÃǤ·¤¿¥Õ¥ê¡£");
392 }
393
394 /***
395 * @see com.ozacc.mail.SendMail#send(javax.mail.internet.MimeMessage)
396 */
397 public void send(MimeMessage mimeMessage) throws MailException {
398 throw new UnsupportedOperationException("¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¡£MockSendMail¤Ç¤Ï¡¢¤³¤Î¥á¥½¥Ã¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£");
399 }
400
401 /***
402 * @see com.ozacc.mail.SendMail#send(javax.mail.internet.MimeMessage[])
403 */
404 public void send(MimeMessage[] mimeMessages) throws MailException {
405 throw new UnsupportedOperationException("¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¡£MockSendMail¤Ç¤Ï¡¢¤³¤Î¥á¥½¥Ã¥É¤ò¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤Þ¤»¤ó¡£");
406 }
407
408 /***
409 * ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É¤òÊÖ¤·¤Þ¤¹¡£
410 *
411 * @return ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É
412 */
413 public String getCharset() {
414 return charset;
415 }
416
417 /***
418 * ¥á¡¼¥?¤Î·?̾¤äËÜʸ¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É¤ò»ØÄꤷ¤Þ¤¹¡£
419 * ¥Ç¥Õ¥©¥?¥È¤Ï ISO-2022-JP ¤Ç¤¹¡£
420 *
421 * @param charset ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤Ë»ÈÍѤ¹¤?ʸ»ú¥³¡¼¥É
422 */
423 public void setCharset(String charset) {
424 this.charset = charset;
425 }
426
427 /***
428 * ¥»¥Ã¥È¤µ¤?¤¿SMTP¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾¡¢¤Þ¤¿¤ÏIP¥¢¥É¥?¥¹¤òÊÖ¤·¤Þ¤¹¡£
429 *
430 * @return SMTP¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾¡¢¤Þ¤¿¤ÏIP¥¢¥É¥?¥¹
431 */
432 public String getHost() {
433 return host;
434 }
435
436 /***
437 * SMTP¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾¡¢¤Þ¤¿¤ÏIP¥¢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
438 * ¥Ç¥Õ¥©¥?¥È¤Ï localhost ¤Ç¤¹¡£
439 *
440 * @param host SMTP¥µ¡¼¥Ð¤Î¥Û¥¹¥È̾¡¢¤Þ¤¿¤ÏIP¥¢¥É¥?¥¹
441 */
442 public void setHost(String host) {
443 this.host = host;
444 }
445
446 /***
447 * @return SMTP¥µ¡¼¥Ðǧ¾Ú¥Ñ¥¹¥?¡¼¥É
448 */
449 public String getPassword() {
450 return password;
451 }
452
453 /***
454 * SMTP¥µ¡¼¥Ð¤ÎÀܳǧ¾Ú¤¬É¬Íפʾ?¹ç¤Ë¥Ñ¥¹¥?¡¼¥É¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
455 *
456 * @param password SMTP¥µ¡¼¥Ðǧ¾Ú¥Ñ¥¹¥?¡¼¥É
457 */
458 public void setPassword(String password) {
459 this.password = password;
460 }
461
462 /***
463 * @return SMTP¥µ¡¼¥Ð¤Î¥Ý¡¼¥ÈÈÖ¹?
464 */
465 public int getPort() {
466 return port;
467 }
468
469 /***
470 * SMTP¥µ¡¼¥Ð¤Î¥Ý¡¼¥ÈÈÖ¹æ¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
471 *
472 * @param port SMTP¥µ¡¼¥Ð¤Î¥Ý¡¼¥ÈÈÖ¹?
473 */
474 public void setPort(int port) {
475 this.port = port;
476 }
477
478 /***
479 * @return Returns the protocol.
480 */
481 public String getProtocol() {
482 return protocol;
483 }
484
485 /***
486 * @param protocol The protocol to set.
487 */
488 public void setProtocol(String protocol) {
489 this.protocol = protocol;
490 }
491
492 /***
493 * @return Return-Path¥¢¥É¥?¥¹
494 */
495 public String getReturnPath() {
496 return returnPath;
497 }
498
499 /***
500 * Return-Path¥¢¥É¥?¥¹¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
501 *
502 * @param returnPath Return-Path¥¢¥É¥?¥¹
503 */
504 public void setReturnPath(String returnPath) {
505 this.returnPath = returnPath;
506 }
507
508 /***
509 * @return SMTP¥µ¡¼¥Ðǧ¾Ú¥æ¡¼¥¶Ì¾
510 */
511 public String getUsername() {
512 return username;
513 }
514
515 /***
516 * SMTP¥µ¡¼¥Ð¤ÎÀܳǧ¾Ú¤¬É¬Íפʾ?¹ç¤Ë¥æ¡¼¥¶Ì¾¤ò¥»¥Ã¥È¤·¤Þ¤¹¡£
517 *
518 * @param username SMTP¥µ¡¼¥Ðǧ¾Ú¥æ¡¼¥¶Ì¾
519 */
520 public void setUsername(String username) {
521 this.username = username;
522 }
523
524 }