English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java 基礎教程

Java 流程制御

Java 配列

Java 面向オブジェクト(I)

Java 面向オブジェクト(II)

Java 面向オブジェクト(III)

Java 異常処理

Java リスト(List)

Java Queue(キュー)

Java Map 集合

Java Set 集合

Java 入出力(I/O)

Java Reader/Writer

Java 他のトピック

Java メールの送信

Java アプリケーションを使用して Eメールを送信する-mail は非常に簡単ですが、まずは JavaMail API と Java Activation Framework (JAF) をあなたのマシンにインストールする必要があります。

  • 最新バージョンの JavaMail API と Java Activation Framework (JAF) を Java 網站からダウンロードできます。 JavaMail、ウェブページの右側にあります ダウンロード リンクをクリックしてダウンロードします。

  • 最新バージョンの JavaMail API と Java Activation Framework (JAF) を Java 網站からダウンロードできます。 JAF(バージョン 1.1.1)

また、このサイトで提供されているダウンロードリンクを使用することもできます:

これらのファイルをダウンロードして解凍し、新しく作成したトップレベルのディレクトリに移動すると、これらのアプリケーションの jar ファイルが見つかります。以下の jar ファイルを配置する必要があります: mail.jar および activation.jar ファイルをCLASSPATHに追加します。

もしあなたがQQのSMTPサーバーなどのサードパーティメールサーバーを使用する場合、記事の下部にユーザーアカウント認証の完全な例があります。

簡単な Eメールを送信する-mail

以下は簡単なEメールの送信例です:-メールのインスタンスです。あなたのローカルホストがネットワークに接続されていることを前提にしています。

// ファイル名 SendEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendEmail
{
   public static void main(String [] args)
   {   
      // 受信者電子メール
      String to = "[email protected]";
 
      // 送信者電子メール
      String from = "[email protected]";
 
      // 送信先のメールのホストを localhost に指定します。
      String host = "localhost";
 
      // システム属性を取得します
      Properties properties = System.getProperties();
 
      // メールサーバーを設定します
      properties.setProperty("mail.smtp.host", host);
 
      // デフォルトのsessionオブジェクトを取得します
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // デフォルトのMimeMessageオブジェクトを生成します
         MimeMessage message = new MimeMessage(session);
 
         // 設定 From: ヘッダーフィールド
         message.setFrom(new InternetAddress(from));
 
         // 
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));
 
         // 設定 Subject: ヘッダーフィールド
         message.setSubject("This is the Subject Line!");
 
         // メッセージ本文の設定
         message.setText("This is actual message");
 
         // メッセージの送信
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

このプログラムをコンパイルして実行して簡単なEメールを送信します。-mail:

$ java SendEmail
Sent message successfully....

もしあなたが一封のe-複数の受信者にメールを送信する場合、以下のメソッドを使用して複数の受信者IDを指定します:

void addRecipients(Message.RecipientType type,
                   Address[] addresses)
MessagingException

以下はパラメータの説明です:

  • type:TO、CC または BCC に設定する必要があります。ここで CC は転送先、BCC は秘密転送先を意味します。例えば:Message.RecipientType.TO

  • addresses: これはメールIDの配列です。指定するメールIDでは、InternetAddress()メソッドを使用する必要があります。

HTMLメールを送信します-mail

以下は、HTML E-mailのインスタンスです。あなたのローカルホストがネットワークに接続されていることを前提にしています。

前の例と非常に似ていますが、setContent()メソッドを使用して「text/html"、を設定してHTML内容を指定します。

// ファイル名 SendHTMLEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendHTMLEmail
{
   public static void main(String [] args)
   {
     
      // 受信者電子メール
      String to = "[email protected]";
 
      // 送信者電子メール
      String from = "[email protected]";
 
      // 送信先のメールのホストを localhost に指定します。
      String host = "localhost";
 
      // システム属性を取得します
      Properties properties = System.getProperties();
 
      // メールサーバーを設定します
      properties.setProperty("mail.smtp.host", host);
 
      // デフォルトの Session オブジェクトを取得します。
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // デフォルトの MimeMessage オブジェクトを作成します。
         MimeMessage message = new MimeMessage(session);
 
         // 設定 From: ヘッダーフィールド
         message.setFrom(new InternetAddress(from));
 
         // 
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));
 
         // Subject: ヘッダーフィールドを設定します。
         message.setSubject("This is the Subject Line!");
 
         // HTMLメッセージを送信します、HTMLタグを挿入できます。
         message.setContent("<h1>This is actual message</h1>",
                            "text/"text/html" );
 
         // メッセージの送信
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

このプログラムをコンパイルして実行してHTMLメールを送信します。-mail:

$ java SendHTMLEmail
Sent message successfully....

添付ファイルを含む E-mail

以下は、添付ファイルを含む E-メールのインスタンスです。あなたのローカルホストがネットワークに接続されていることを前提にしています。

// ファイル名 SendFileEmail.java
 
import java.util.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
 
public class SendFileEmail
{
   public static void main(String [] args)
   {
     
      // 受信者電子メール
      String to = "[email protected]";
 
      // 送信者電子メール
      String from = "[email protected]";
 
      // 送信先のメールのホストを localhost に指定します。
      String host = "localhost";
 
      // システム属性を取得します
      Properties properties = System.getProperties();
 
      // メールサーバーを設定します
      properties.setProperty("mail.smtp.host", host);
 
      // デフォルトの Session オブジェクトを取得します。
      Session session = Session.getDefaultInstance(properties);
 
      try{
         // デフォルトの MimeMessage オブジェクトを作成します。
         MimeMessage message = new MimeMessage(session);
 
         // 設定 From: ヘッダーフィールド
         message.setFrom(new InternetAddress(from));
 
         // 
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));
 
         // Subject: ヘッダーフィールドを設定します。
         message.setSubject("This is the Subject Line!");
 
         // メッセージ部分を作成します。
         BodyPart messageBodyPart = new MimeBodyPart();
 
         // メッセージ
         messageBodyPart.setText("This is message body");
        
         // 多重メッセージを作成します
         Multipart multipart = new MimeMultipart();
 
         // テキストメッセージ部分を設定します
         multipart.addBodyPart(messageBodyPart);
 
         // 添付ファイル部分
         messageBodyPart = new MimeBodyPart();
         String filename = "file.txt";
         DataSource source = new FileDataSource(filename);
         messageBodyPart.setDataHandler(new DataHandler(source));
         messageBodyPart.setFileName(filename);
         multipart.addBodyPart(messageBodyPart);
 
         // 完全なメッセージを送信します
         message.setContent(multipart );
 
         //   メッセージの送信
         Transport.send(message);
         System.out.println("Sent message successfully....");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}

プログラムをコンパイルして実行し、添付ファイル付きのメールを送信します。

$ java SendFileEmail
Sent message successfully....

ユーザー認証部分

ユーザー名とパスワードをeに提供する必要がある場合:-mailサーバーを通じてユーザー認証を達成するために、以下の設定を行うことができます:

props.put("mail.smtp.auth", "true");
props.setProperty("mail.user", "myuser");
props.setProperty("mail.password", "mypwd");

e-mailの他の送信メカニズムは上記と同じです。

ユーザー名とパスワードが必要なメール送信の例:

この例ではQQメールサーバーを用いて、あなたはQQメールのバックエンドで「設定」→「アカウント」でPOPを有効にする必要があります3/SMTPサービス、以下の図のように表示されます:

QQメールは、パスワードを設定するために認証コードを生成して設定します:

以下はJavaのコードです:

// ユーザー名とパスワードが必要なメール送信の例
//ファイル名 SendEmail2.java
//この例ではQQメールを用いて、あなたはqqのバックエンドで設定を行う必要があります
 
import java.util.Properties;
 
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
 
public class SendEmail2
{
   public static void main(String [] args)
   {
      // 受信者電子メール
      String to = "[email protected]";
 
      // 送信者電子メール
      String from = "[email protected]";
 
      // 送信メールのホストをsmtp.qq.comに指定します
      String host = "smtp.qq.com";  //QQメールサーバー
 
      // システム属性を取得します
      Properties properties = System.getProperties();
 
      // メールサーバーを設定します
      properties.setProperty("mail.smtp.host", host);
 
      properties.put("mail.smtp.auth", "true");
      // デフォルトのsessionオブジェクトを取得します
      Session session = Session.getDefaultInstance(properties, new Authenticator(){
        public PasswordAuthentication getPasswordAuthentication()
        {
         return new PasswordAuthentication("[email protected]", "qqメール認証コード"); //送信者メールユーザー名、認証コード
        }
       });
 
      try{
         // デフォルトのMimeMessageオブジェクトを生成します
         MimeMessage message = new MimeMessage(session);
 
         // 設定 From: ヘッダーフィールド
         message.setFrom(new InternetAddress(from));
 
         // 
         message.addRecipient(Message.RecipientType.TO,
                                  new InternetAddress(to));
 
         // 設定 Subject: ヘッダーフィールド
         message.setSubject("This is the Subject Line!");
 
         // メッセージ本文の設定
         message.setText("This is actual message");
 
         // メッセージの送信
         Transport.send(message);
         System.out.println("Sent message successfully....from oldtoolbag.com");
      }catch (MessagingException mex) {
         mex.printStackTrace();
      }
   }
}