2011-02-02 1 views
6

glassfishに配置されたJava EE 6アプリケーションを開発していますが、電子メールの送信方法に関するチュートリアルは引き続き読んでいますが、古いか複雑すぎるようです。私は、この仕様ではメールを送信するための方法がとても簡単であることを願っていました。 あなたは正しい方向に私を指すか、私にいくつかのサンプルコードを表示することができますか?JAVA EE 6で電子メールを送信する

答えて

11

あなたはapache commons emailを利用したり、春を使用している場合は、その後spring mailを使用することができます。あなたはそれにラッパー・ライブラリーのいずれかとcode sampleを使用しない場合JavaMailは常にあります。

これらのすべてのリンクは、コード例を持っています。

+0

glassfishにはsmtpサーバーやメールを送信するサービスはありますか?それとも別にセットアップする必要がありますか? – arg20

+0

学校や職場のsmtpサーバーを使用する必要があります。私はダンスターを一度も使用していませんが、使用するには良いもののように聞こえます。そのリンクを提供してくれたJamesへの誇り。私のWildfly 10.1.0.final、メールリソースインジェクションで – CoolBeans

0

JEEアプリケーションサーバーは、電子メールのリソースを提供する必要があります。あなたが行う必要があると思うのは、リソースをルックアップすることです(設定されていると思います)。

//Mail Resource injection not working on wildfly 10 
//@Resource(lookup = "java:/futuramail") 
private Session mailSession; 

@Asynchronous 
@Lock(LockType.READ) 
    public void sendMail(String recipient, String subject, String text) { 
     try { 

      InitialContext ic = new InitialContext(); 
      mailSession = (Session) ic.lookup("java:/futuramail"); 
      MimeMessage message = new MimeMessage(mailSession); 
      Address[] to = new InternetAddress[]{new InternetAddress(recipient)}; 
      message.setRecipients(Message.RecipientType.TO, to); 
      message.setSubject(subject); 
      message.setSentDate(new Date()); 
      message.setContent(text, "text/html"); 
      //message.setText(text); 
      Transport.send(message); 
      System.out.println("mail sent"); 
     } catch (MessagingException me) { 
      me.printStackTrace(); 
     } catch (NamingException ex) { 
      Logger.getLogger(MailProcessor.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
+0

参照または名前の属性を使用してのいずれか完璧に動作します –

関連する問題