Shammer's Philosophy

My private adversaria

Java Mail Sample

たまにしか書かないので忘れないようにメモ。

Sample Source Code

import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

public class JavaMail {
    public static void main(String[]args){
	String to = "sample@sample.com";
	String from = "sample@example.com";
	String host = "smtp.example.com";

	Properties p = new Properties();
	p.put("mail.transport.protocol", "smtp");
	p.put("mail.smtp.host", host);

	Session session = Session.getInstance(p, null);
	try {
	    Message message = new MimeMessage(session);
	    message.setFrom(new InternetAddress(from));
	    InternetAddress[] address = {new InternetAddress(to)};
	    message.setRecipients(Message.RecipientType.TO, address);
	    message.setSubject("JavaMail API Test");
	    message.setSentDate(new Date());
	    message.setText("This is a test. Please ignore.");
	    javax.mail.Transport.send(message);
	}
	catch(Exception e){
	    e.printStackTrace();
	}
    }
}

build.xml

<?xml version="1.0" encoding="UTF-8"?>

<project name="JavaAppBuild" default="default" basedir=".">
  <!-- Directory Definitions -->
  <property name="appName" value="JavaMail" />
  <property name="appDir" value="${basedir.dir}/${appName}" />
  <!-- src Directory -->
  <property name="dir.src" value="${appDir}/src" />
  <!-- classes Directory -->
  <property name="dir.classes" value="${appDir}/classes" />


  <!-- Classpath definitions -->
  <!-- JavaMail classpath -->
  <path id="classpath.javamail">
    <fileset dir="lib">
      <include name="*.jar" />
    </fileset>
  </path>

  <!-- Build -->
  <target name="default" depends="compile" />

  <!-- 作業用ディレクトリのcleanup -->
  <target name="cleanup">
    <delete dir="${dir.classes}" />
    <mkdir dir="${dir.classes}" />
  </target>

  <!-- java -->
  <target name="run">
    <java classname="JavaMail" classpath="classes" classpathref="classpath.javamail"/>
  </target>

  <!-- compile -->
  <target name="compile" depends="cleanup">
    <javac srcdir="${dir.src}" destdir="${dir.classes}" executable="${compiler}" includeantruntime="false">
      <classpath refid="classpath.javamail" />
    </javac>
  </target>

</project>