Seasar2�Ɠ��l��JDK1.4�ȏオ�K�v�ł��B
�_�E�����[�h����s2mai-x.x.x.zip���𓀂���ƁAs2mai�f�B���N�g�����o���܂��B���̂Ȃ���lib�f�B���N�g���ɂ���us2mai-x.x.x.jar�v���N���X�p�X�Ɋ܂߂ĉ������B
���A�K�v�ƂȂ�jar�t�@�C����lib�f�B���N�g�����ɂ���܂����A���̓��AS2Mai�{�̂��K�v�Ƃ�����͈̂ȉ��ɂȂ�܂��B
- mail-x.x.jar
- activation-x.x.x.jar
- ozacc-mail-x.x.x.jar
- s2-framework-2.4.x.jar
- s2-exteinsion-2.4.x.jar
�e���v���[�g�G���W���Ƃ��āAFreeMarker��Velocity�ɑΉ����Ă��܂��B�����p�ɂȂ�e���v���[�g�G���W���ɂ���Ĉȉ��̂����ꂩ���N���X�p�X�Ɋ܂߂ĉ������B
- FreeMarker�̏ꍇ
-
- Velocity�̏ꍇ
-
- velocity-x.x.jar
- velocity-tools-generic-x.x.jar
- commons-collections-x.x.jar
- commons-lang-x.x.jar
��q���܂����A�Y�t�t�@�C����List�Ŏ��ꍇ�ɃW�F�l���N�X���g�������ꍇ�́A���L��jar���K�v�ƂȂ�܂��B������͔z�z�t�@�C���ɂ͊܂܂�Ă��܂���̂ŕʓr���肵�ĉ������B
- s2-tiger-2.4.x.jar
- geronimo-ejb_2.1_spec-1.0.jar
geronimo-ejb_2.1_spec-1.0.jar�́A�������JavaEE�Ƀt���ɑΉ����Ă���ꍇ�͕s�v�ƂȂ�܂��B�ڂ����������������Q�Ɖ������B
����!!
geronimo-j2ee_1.4_spec-1.0.jar ���N���X�p�X�ɂ���ꍇ�A������ɂ�JavaMail�������I�Ɏ�������Ă���A�Q�Ə����ɂ���Ă����炪�D�悳���ƕs����������鎖���m�F����Ă��܂��B�o�������SUN��JavaMail�����i�����ł�mail.jar�j���g���悤�ɂ��ĉ������B
S2Mai�ł͒萔�A�m�e�[�V������p���Ċe��v���p�e�B��ݒ肷�鎖���o���܂��B�����萔�ł͂Ȃ��AJava�̃A�m�e�[�V�������g���Đݒ肷�鎖���o���܂��B���̍ۂɂ́As2mai-tiger-x.x.x.zip���_�E�����[�h������A�𓀂��A����Ɋ܂܂��us2mai-tiger-x.x.x.jar�v���N���X�p�X�Ɋ܂߂ĉ������B
S2Mai��Maven2����������p���������܂��B�܂��ASeasar��Maven2���|�W�g����repository�v�f��lj����܂��B
<repositories>
<repository>
<id>maven.seasar.org</id>
<name>The Seasar Foundation Maven2 Repository</name>
<url>http://maven.seasar.org/maven2</url>
</repository>
</repositories>
�����āAS2Mai��������S2Mai-Tiger��dependencies�v�f�̒��ɒlj����ĉ������BS2Mai-Tiger�������p�̏ꍇ�́AS2Mai�ւ̈ˑ���Maven2���������܂��̂ŁA�v�f��lj�����K�v�͂���܂���B
<dependency>
<groupId>org.seasar.mai</groupId>
<artifactId>s2mai</artifactId>
<version>0.9.4</version>
</dependency>
<dependency>
<groupId>org.seasar.mai</groupId>
<artifactId>s2mai-tiger</artifactId>
<version>0.9.4</version>
</dependency>
version�͓K�X�w�肵�ĉ������B
SMTP�T�[�o�̐ݒ��G���R�[�f�B���O�ȂǁA�S�̂̐ݒ�́umailProperties.dicon�v�Ƃ����t�@�C���ɋL�q���܂��B���̃t�@�C����jar�Ɋ܂܂�Ă���̂ŁA���L�̃f�t�H���g�l�Ŗ�肪�Ȃ���쐬����K�v�͂���܂���B�ݒ�̕ύX���������ꍇ�ɂ̓t�@�C�����쐬���A�ݒ���L�q���ă��[�g�p�b�P�[�W�ɒu���܂��B
�f�t�H���g�̓��e�͈ȉ��ɂȂ�܂��B
mailProperties.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
"http://www.seasar.org/dtd/components23.dtd">
<components namespace="mailProperties">
<component name="host">
"localhost"
</component>
<component name="port">
25
</component>
<component name="username">
null
</component>
<component name="password">
null
</component>
<component name="from">
null
</component>
<component name="replyTo">
null
</component>
<component name="returnPath">
null
</component>
<component name="messageId">
null
</component>
<component name="templateEncoding">
"UTF-8"
</component>
<component name="connectionTimeout">
10000
</component>
<component name="readTimeout">
10000
</component>
<component name="mailCharset">
"ISO-2022-JP"
</component>
</components>
�e�ݒ荀�ڂ̓��e�͈ȉ��ł��B
- host
- SMTP�T�[�o����������IP
- port
- SMTP�̃|�[�g�ԍ�
- username
- SMTP�Ƀ��O�C������K�v������ꍇ�A���̃��[�U�[��
- password
- �������A���̃p�X���[�h
- templateEncoding
- �e���v���[�g�̃G���R�[�f�B���O
- connectionTimeout
- SMTP�T�[�o�Ƃ̐ڑ��^�C���A�E�g
- readTimeout
- SMTP�T�[�o�ւ̑���M���̃^�C���A�E�g
- mailCharset
- ���[���̃G���R�[�h�Ɏg�p���镶���R�[�h
���̍��ڂ͌��ݖ��Ή��ł��B
�܂��A���[���̓��e��ێ�����N���X�����܂��B�����ł́Aname�Ƃ����v���p�e�B���������uTestDto�v�Ƃ����N���X���us2mai.test.dto�v�Ƃ����p�b�P�[�W�ɍ�鎖�ɂ��܂��B
s2mai.test.dto.TestDto
package s2mai.test.dto;
public class TestDto{
private String name;
public void setName(String name_){
this.name = name_;
}
public String getName(){
return name;
}
}
���ɁA���[�����M������Mai�C���^�t�F�[�X�����܂��B�����ł́uTestMai�v�Ƃ����C���^�t�F�[�X���us2mai.test.mai�v�Ƃ����p�b�P�[�W�ɍ�鎖�ɂ��܂��B�uTestMai�v�́A�uTestDto�v�������ɂƂ��Ă��̓��e�f�������[���𑗐M����usendMail�v�Ƃ������\�b�h�������ɂ��܂��B
s2mai.test.mai.TestMai
package s2mai.test.mai;
public interface TestMai {
void sendMail(TestDto dto);
}
���̃C���^�t�F�[�X�̖��O�͂Ȃ�ł��\���܂��A��X�̃����e�i���X��SMART deploy��p�����J���ɑΉ����邽�߂ɁA�u�`Mai�v�Ƃ��������K���ɑ��鎖�𐄏����܂��B�܂��A���[�����M�p���\�b�h�̖��O�ɂ͓��ɐ���͂���܂���B�p�r�ʂɕ����̃��\�b�h�����Mai�C���^�t�F�[�X�ɒ�`���鎖���o���܂��B
���ɁA�C�ӂ�dicon�t�@�C����Mai���R���|�[�l���g�Ƃ��ēo�^���܂��B�����ł́A�umaitest.dicon�v�Ƃ����t�@�C�������[�g�p�b�P�[�W�ɍ��A�����Œ�`���鎖�ɂ��܂��B
maitest.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
"http://www.seasar.org/dtd/components23.dtd">
<components>
<include path="s2mai.dicon"/>
<component class="s2mai.test.mai.TestMai">
<aspect>s2MaiInterceptor</aspect>
</component>
</components>
s2mai.dicon��include���A<aspect>�^�O�ŁAs2MaiInterceptor��K�p���܂��Bs2mai.dicon��jar�̒��ɂ���܂��̂ŃJ�X�^�}�C�Y���Ȃ�����͉������Ȃ��č\���܂���B
���ɁAfrom��to�Ƃ��������[���̐ݒ��ێ�����dicon�t�@�C�����AMai�C���^�t�F�[�X�Ɠ����p�b�P�[�W�ɍ��܂��B�����ł́us2mai.test.mai�v�ɍ�鎖�ɂȂ�܂��Bdicon�t�@�C���̃t�@�C�����͉��L�̓�ʂ肪�g�p�ł��܂��B
- Mai�C���^�t�F�[�X��.dicon
- Mai�C���^�t�F�[�X��_���\�b�h��.dicon
Mai�C���^�t�F�[�X���݂̂̃t�@�C�����̏ꍇ�AMai�C���^�t�F�[�X�ɕ����̃��\�b�h������ꍇ�A�����S�ĂɓK�p����܂��B���郁�\�b�h�����ɓK�p�������ꍇ�́AMai�C���^�t�F�[�X��_���\�b�h���̌`���ɂ��܂��B
�����ł́A���\�b�h���w�肷��`�ɂ��Ă݂܂��B
TestMai_sendMail.dicon
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN"
"http://www.seasar.org/dtd/components23.dtd">
<components>
<component class="com.ozacc.mail.Mail">
<initMethod name="addTo"><arg>"[email protected]"</arg></initMethod>
</component>
</components>
��L�́ATo�Ɂu[email protected]�v��lj����Ă��܂��Bozacc����̍��ꂽozacc-mail-library��Mail�N���X�ɒ��ڐݒ肵�Ă܂��̂ŁA���̃v���p�e�B�ȂǏڂ�������http://spring-ext.sourceforge.jp/oml/apidocs/com/ozacc/mail/Mail.html���Q�Ƃ��ĉ������B
���ɁA���M���[���̓��e�̃e���v���[�g�����܂��B�f�t�H���g�ł̓e���v���[�g�G���W���Ƃ���FreeMarker���g���܂��B�t�@�C�����́A�uMai�C���^�t�F�[�X��_���\�b�h��.ftl�v�Ƃ��ĉ������Bftl��FreeMarker�̃e���v���[�g�̊g���q�ƂȂ�܂��B������AMai�C���^�t�F�[�X�Ɠ����p�b�P�[�W�ɒu���܂��B
TestMai_sendMail.ftl
Subject: �e�X�g���[���ł��B
${data.name}����ɂ��́B
�e���v���[�g�̈�ԏ�̍s�ɁA�uSubject: (�Ō�ɔ��p�X�y�[�X���)�v�Ə����ƁA����ȍ~�������Ƃ��ăZ�b�g���܂��B�Ⴆ�Ό����Ɂu��X��v��uvol.1�v�ȂǓ��I�ȍ��ڂ������ăf�[�^�ߍ��݂������Ȃǂɕ֗��ł��B
�uSubject:�`�v���������ꍇ�A�{���Ƃ̊Ԃɋ�s��1�s����ĉ������B�uSubject:�`�v�������Ȃ��ꍇ��1�s�ڂ���{���Ƃ݂Ȃ��܂��̂ŋ�s�͗v��܂���B
mailProperties.dicon��templateEncoding��UTF-8���w�肵�Ă܂��̂ŁAUTF-8�ŕۑ����܂��B���[���̓��e��ێ�����N���X�i�����ł�TestDto�N���X�j�̃v���p�e�B�ߍ��ޏꍇ�ɂ́A�u${data.property��}�v�Ə����܂��B�e���v���[�g����TestDto��\���v�f���́udata�v�Œ�ł��B
�ł́A���s���Ă݂܂��傤�B
S2Container container = S2ContainerFactory.create("maitest.dicon");
TestMai mai = (TestMai) container.getComponent(TestMai.class);
TestDto dto = new TestDto();
dto.setName("�Z");
mai.sendMail(dto);
����ƁA���L�̓��e�Ń��[�������M����܂��B
From:null
To:[email protected]
(���ȗ�)
Subject:�e�X�g���[���ł��B
�Z����ɂ��́B
���ꂪ��{�I��S2Mai�̎g�����ł��B
��{�I�Ȏg�����ł��ƁA���M��Ȃǃ��[���̐ݒ��dicon�t�@�C���ɏ����ۂɁAozacc-mail-library��API�܂��Ă��Ȃ��Ƃ����܂���BS2Mai�́AMai�C���^�t�F�[�X�ɑ��ăA�m�e�[�V������lj����鎖�ɂ��AFrom��To�Ȃǂ�ݒ肷�鎖���o���܂��̂ŁA�A�m�e�[�V�����@�\��p���鎖�ɂ��Adicon�ł̐ݒ��������鎖���o���܂��B
�����ł́A��̃T���v���ŗp�����uTestMai�v�ɃA�m�e�[�V������lj����Ă݂܂��B�A�m�e�[�V�����ɂ�Java�̃A�m�e�[�V�����ƒ萔�A�m�e�[�V�����̓�ʂ肪�w��o���܂����A�܂��͒萔�A�m�e�[�V�������g���Ă݂܂��傤�B
s2mai.test.mai.TestMai
public interface TestMai {
static final String FROM = "[email protected]";
static final String TO = "[email protected]";
void sendMail(TestDto data);
}
����ŁA��قǍ�����uTestMai_sendMail.dicon�v�͕s�v�ƂȂ�܂��B�܂��A����̃T���v���ł�null�ƂȂ��Ă���From���u[email protected]�v�Ƃ��Ēlj����Ă݂܂����B
���̃A�m�e�[�V�����̎w����@�̏ꍇ�A���Mai�ɕ����̃��\�b�h������ꍇ�ł��e���\�b�h�ɋ��ʂɓK�p����܂��B���\�b�h�P�ʂŎw�肷��ꍇ�́A�u���\�b�h��_�ݒ荀�ږ��v�Ƃ����萔���ɂ��܂��B
s2mai.test.mai.TestMai
public interface TestMai {
static final String FROM = "[email protected]";
static final String TO = "[email protected]";
static final String sendMail2_TO = "[email protected]";
void sendMail(TestDto data);
void sendMail2(TestDto2 data);
void sendMail3(TestDto3 data);
}
���̏ꍇ�AsendMail��sendMail3�̎��s����To�ɂ́u[email protected]�v���ݒ肳��āAsendMail2�̎��s���ɂ́u[email protected]�v�����f����܂��BTo��Cc��Bcc�ȂǁA�����w�肷����̂ɂ́A�z��ł̎w����o���܂��B
�܂��A���[���A�h���X�ɂ́A�u�Z<[email protected]>�v�Ƃ������悤�ɁA�A�h���X�{�̂ƍ��킹�Ė��̂�ݒ肵������������܂��BS2Mai�ł́A���[���A�h���X�Ɩ��̂�ێ�����A�uorg.seasar.mai.mail.MailAddress�v�Ƃ����N���X����Ă��܂��B
�z��ł̕����w���MailAddress�N���X�̎g�p������킹�Č��Ă݂܂��傤�B
static final MailAddress FROM = new MailAddress("[email protected]","���M����");
static final MailAddress[] TO =
new MailAddress[]{new MailAddress("[email protected]","�Z"), new MailAddress("[email protected]","�܂�")};
MailAddress�̃R���X�g���N�^�̈����́A��ꂪ���[���A�h���X�A����O�ɂȂ�܂��B���͏ȗ��\�ł��BMailAddress���̂ł́A���[���A�h���X�̃t�H�[�}�b�g�ȂǁA�K��ɊO��Ă��Ă����ɃG���[�͋N���܂��A�ŏI�I��JavaMail��InternetAddress�ւƃZ�b�g�����̂ŁA�����ŗ�O���������܂��̂ł����Ӊ�����
�萔�A�m�e�[�V�����ɂ͈ȉ����w��o���܂��B
�A�m�e�[�V���� |
�����w��̉� |
SUBJECT |
�~ |
FROM |
�~ |
TO |
�� |
CC |
�� |
BCC |
�� |
REPLY_TO |
�~ |
RETURN_PATH |
�~ |
�����Őݒ肳�ꂽ�l�́AMai�C���^�t�F�[�X��_���\�b�h��.dicon�Őݒ肳�ꂽ���̂��D�悳��܂��B
�������ASubject�̓e���v���[�g��1�s�ڂɏ��������̂��ŗD��ƂȂ�܂��B�A�m�e�[�V�����Őݒ肵�����ꍇ�́A�e���v���[�g��1�s�ڂ́uSubject: �`�v���s���ƍ폜���ĉ������B1�s�ڂ��烁�[���{�����n�܂��Ă����͂���܂���B
�����܂ł̕��@�ł��ƁAFrom��To�Ȃǂ̃��[���ݒ�̓r���h���Ɍ��܂��Ă��܂��A�A�v���P�[�V�����œ��I�ɐݒ肷�鎖���o���܂���BS2Mai�́A���[���̓��e��ێ�����N���X�̃v���p�e�B�𖽖��K���ɏ��������O�ɂ��鎖�ŁA���̃v���p�e�B�̒l���g���ă��[���ݒ���s���܂��B�A�v���P�[�V�������ŁA���̃v���p�e�B�ɒl���Z�b�g���Ă�鎖�ŁA���I�ɐݒ肷�鎖���\�ƂȂ�܂��B
�����ł́A����T���v���Ŏg�����uTestDto�v�Ƀ��[���ݒ�p�v���p�e�B��lj����Ă݂܂��B
s2mai.test.dto.TestDto
public class TestDto{
private String name;
private InternetAddress from;
private List to;
private MailAddress[] cc;
private String[] bcc
private String subject;
(setter�Agetter�ȗ�)
}
��������ƁA���̃v���p�e�B�ɐݒ肳�ꂽ�l���A�uMai�C���^�t�F�[�X��.dicon�v�܂��́uMai�C���^�t�F�[�X��_���\�b�h��.dicon�v�̋L�q���e�AMai�C���^�t�F�[�X�ɏ������A�m�e�[�V�����̂ǂ�����D�悳��Ĕ��f����܂��B
�������ASubject�̓e���v���[�g��1�s�ڂ��uSubject: �`�v�������ꍇ�́A�e���v���[�g���ŗD��ł��B
�����ł͂��܂��܂Ȍ^�Ńv���p�e�B�Ƃ��Đ錾����Ă��܂��BS2Mai�őΉ����Ă���v���p�e�B���A�ϐ��^�͉��L�ɂȂ�܂��B
�v���p�e�B�� |
���[���ݒ� |
�w��\�Ȍ^ |
subject |
���� |
String |
from |
From |
String javax.mail.internet.InternetAddress org.seasar.mai.mail.MailAddress |
to |
To |
String javax.mail.internet.InternetAddress org.seasar.mai.mail.MailAddress ����т��ꂼ��̔z���������List |
cc |
Cc |
String javax.mail.internet.InternetAddress org.seasar.mai.mail.MailAddress ����т��ꂼ��̔z���������List |
bcc |
Bcc |
String javax.mail.internet.InternetAddress org.seasar.mai.mail.MailAddress ����т��ꂼ��̔z���������List |
replyTo |
Reply-To |
String javax.mail.internet.InternetAddress org.seasar.mai.mail.MailAddress |
returnPath |
Return-Path |
String javax.mail.internet.InternetAddress org.seasar.mai.mail.MailAddress |
�w��\�Ȍ^�ȊO�̏ꍇ�̓G���[�ɂ͂Ȃ�܂��Anull���ݒ肳��܂��B�܂��Afrom�Ȃǂ�z���������List�ɂ����ꍇ�́A�Ō�̗v�f�����f����܂��i���A�����ۏ�����̂ł͂���܂���j�B
List�̏ꍇ�A�v�f�̌^��String�AInternetAddress�AMailAddress���݂ł����삵�܂��B���ɓY�t�t�@�C���p�̃v���p�e�B������܂����A����͌�q���܂��B
�܂��A�T�[�o�̐ݒ��mailProperties.dicon�Őݒ肵�܂������A���[���̓��e��ێ�����N���X����̐ݒ���\�ł��B����̃��[���̂�SMTP�z�X�g���ւ������A�Ȃǂ̗v��������ꍇ�ɂ͂�����Őݒ肵�܂��B
�v���p�e�B�� |
�T�[�o�ݒ� |
�w��\�Ȍ^ |
host |
SMTP�T�[�o |
String |
port |
SMTP�|�[�g |
String Integer int |
username |
SMTP���[�U�[�� |
String |
password |
SMTP�p�X���[�h |
String |
�Y�t�t�@�C���������ꍇ�́AS2Mai�Œ��Ă���uorg.seasar.mai.mail.AttachedFile�v���g���܂��B
�R���X�g���N�^�Ƃ��āA���L���p�ӂ���Ă��܂��B
- AttachedFile(File file)
- AttachedFile(File file, String fileName)
- AttachedFile(InputStream inputStream, String fileName)
- AttachedFile(URL url, String fileName)
���ꂼ��������Ńt�@�C������ݒ肵�܂����A�K�Ȋg���q���K�v�ƂȂ�܂��BFile�݂̂��w�肵���ꍇ�́A���̃t�@�C�������Z�b�g����܂��B
�����ۏ��邽�߂ɁA���ꂼ��̐ݒ�l��setter�͗p�ӂ��Ă��܂���Bgetter�͂���܂��B
�uTestDto�v�ɓY�t�t�@�C���v���p�e�B��lj����܂��傤�B
s2mai.test.dto.TestDto
public class TestDto{
private String name;
private AttachedFile file;
(setter�Agetter�ȗ�)
}
�v���p�e�B���͉��ł��\���܂���B�^��AttachedFile�ł���ΓY�t�t�@�C���ƌ��Ȃ��܂��B�܂��A�����w��̏ꍇ�͔z����T�|�[�g���Ă��܂��B����ɁA�v���p�e�B���\���Ă����v�ł��B
public class TestDto{
private String name;
private AttachedFile file;
private AttachedFile[] files;
(setter�Agetter�ȗ�)
}
file��files�̂��ꂼ��ɃZ�b�g���ꂽ�t�@�C�����Y�t����܂��B
�܂��A�^��List�ɂ����ꍇ�́A���̂܂܂̃v���p�e�B���ł��Ɨv�f�̌^���s�m��̂��ߖ�������܂����A�v���p�e�B�����uattachedFile�v�Ƃ������O�ɂ���A�Y�t�t�@�C���Ƃ��Ĉ����܂��B
public class TestDto{
private String name;
private List attachedFile;
(setter�Agetter�ȗ�)
}
�ܘ_�A���́uattachedFile�v�Ƃ����v���p�e�B���́AList�ɐ����������̂ł͂Ȃ��A�P�̂�AttachedFile�̏ꍇ�ł����̔z��̏ꍇ�ł��t���č\���܂���B
�������A�W�F�l���N�X��p�����ꍇ�͂��̋K������Ȃ��Ă�OK�ł��B�v�f�̌^���ۏ���܂��̂ŁA�v���p�e�B���͎��R�ɕt�����܂��B
public class TestDto{
private String name;
private List<AttachedFile> fileList;
(setter�Agetter�ȗ�)
}
���̃W�F�l���N�X�̃T�|�[�g���g�������ꍇ�́As2-tiger���K�v�ł��B�ڍׂ����������Q�Ƃ��ĉ������B
|