WildflyjavamailおよびmailsessionインジェクションHELOコマンドをSMTPサーバーに送信できませんでした

パシャ・シェスタコフ

だから私はいくつかの説明が必要です。私はグーグルSMTPサーバーを使用して、グーグルアプリアカウントを使用してメールを送信しようとしています(リレーではなく無料のもの)。私はwildfly10コンテナ(およびJSF)を使用しているので、プロジェクトにjavamail jarがありません(それは正しいですか?)。したがって、ステートレスEJBでは、リソースインジェクションを実行します。

@Resource(name = "mail")
private javax.mail.Session mailSession;

そして私のstandalone.xmlで:

<subsystem xmlns="urn:jboss:domain:mail:2.0">
        <mail-session name="mail" jndi-name="java:/mail"/>
</subsystem>

したがって、次のようなプロパティを追加するだけで、スタンドアロンでポート、ユーザー名、およびパスワードを定義する必要はないと想定しています。

Properties props = System.getProperties();
    String host = "smtp.gmail.com";
    props.put("mail.smtp.starttls.enable", "true");
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", "[email protected]");
    props.put("mail.smtp.password", "XXXX");
    props.put("mail.smtp.port", "465");
    props.put("mail.smtp.ssl.enable", "true");
    props.put("mail.smtp.auth", "true");

    mailSession = Session.getDefaultInstance(props, 
            new javax.mail.Authenticator(){
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(
                        "[email protected]", "XXXX");// Specify the Username and the PassWord
                }
        });  

これは正しいですか、それともstandalone.xmlでも定義する必要がありますか?

だから私はエラーを受け取ります:javax.mail.MessagingException:SMTPサーバーへのHELOコマンドの送信に失敗しました

これを機能させる方法についての助けはありがたいです!

完全なコードは次のとおりです。

import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.faces.component.UIInput;
import javax.mail.Address;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

//import view.Info;
@Stateless
public class EmailEJB implements EmailBeanInterface {


@Resource(name = "mail")
private javax.mail.Session mailSession;

@PersistenceContext(unitName = "EmailEJB")
EntityManager em;

String amountToDisplay = null;
List<Info> emailList;



public void setAmountToDisplay(String amountToDisplay) {
    this.amountToDisplay = amountToDisplay;
}

@PostConstruct
public void defaultList() {
    String sqlPrepareStmt = "SELECT e FROM Info e WHERE id <=" + amountToDisplay;
    emailList = (List<Info>) em.createQuery(sqlPrepareStmt, Info.class).getResultList();
}

public List<Info> getEmailList() {
    return emailList;
}

public void send(ArrayList<String> managedList) {

    Properties props = System.getProperties();
    String host = "smtp.gmail.com";
    props.put("mail.smtp.starttls.enable", "false");
    props.put("mail.smtp.host", host);
    props.put("mail.smtp.user", "[email protected]");
    props.put("mail.smtp.password", "XXXX");
    props.put("mail.smtp.port", "465");
    props.put("mail.smtp.ssl.enable", "true");
    props.put("mail.smtp.auth", "true");
    //Session mailSession = Session.getDefaultInstance(props);
   // mailSession= Session.getDefaultInstance(props);
    mailSession = Session.getDefaultInstance(props, 
            new javax.mail.Authenticator(){
                protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(
                        "XXXX", "XXXX");// Specify the Username and the PassWord
                }
        });
    try {
        MimeMessage m = new MimeMessage(mailSession);
        Address from = new InternetAddress("[email protected]");
        Address[] to;
        to = new Address[managedList.size()];
        for (int i = 0; i < managedList.size(); i++) {
            String emailString =  managedList.get(i);
            if(emailString.isEmpty() == true){
                System.out.println("emailString is empty");
            }
            else{
            to[i] = new InternetAddress(java.net.IDN.toASCII(emailString));
            }
        }

        m.setRecipients(Message.RecipientType.TO, to);
        m.setSubject("Wildfly 10 - Checkbox test");
        m.setSentDate(new java.util.Date());
        BodyPart messageBodyPart = new MimeBodyPart();

        // Fill the message
        messageBodyPart.setText("testing application managed javamail props");

        // Create a multipart message
        Multipart multipart = new MimeMultipart();

        // Set text message part
        multipart.addBodyPart(messageBodyPart);
        m.setContent(multipart);
        Transport transport = mailSession.getTransport("smtp");
        transport.connect(host, "[email protected]", "XXXX");
        transport.send(m);
        transport.close();
        System.out.println("Mail sent!");


    } catch (javax.mail.MessagingException e) {
            e.printStackTrace();
    }
}

}

これもスタックトレースの一部ですが、geronimoに問題がある可能性がありますか?代わりに太陽を使用できますか?その場合、どうすればよいですか?

23:23:23,215 org.apache.geronimo.javamail.transport.smtp.SMTPTransport.sendHelo(SMTPTransport.java:1914)のエラー[stderr](デフォルトのタスク-5)

23:23:23,215 org.apache.geronimo.javamail.transport.smtp.SMTPTransport.sendHandshake(SMTPTransport.java:1829)のエラー[stderr](デフォルトのタスク-5)

23:23:23,216 org.apache.geronimo.javamail.transport.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:393)のエラー[stderr](デフォルトのタスク-5)

パシャ・シェスタコフ

小道具にSSLSocket Factoryが欠けていたと思いますが、今はTLSの使用に切り替えて、機能します。ここにリンクがあります:http//www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/本当に私はそれを複雑にしすぎていました。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

メッセージをSMTPサーバーに送信できませんでした。トランスポートエラーコードは0x80040217でした。サーバーの応答は利用できませんでした

分類Dev

TFS プロジェクトで、Visual Studio は WCF クラスを「型または名前空間が見つかりませんでした」としてマークしますが、完全にコンパイルおよびビルドできます。

分類Dev

Python3.8-FastAPIおよびサーバーレス(AWS Lambda)-APIエンドポイントに送信されたファイルを処理できません

分類Dev

コルドバAndroidプロダクションリリースにロードするCSSおよびJSファイルを取得できません

分類Dev

ElementCollectionおよび「ロールのコレクションを遅延初期化できませんでした」例外

分類Dev

エラー:日食およびコマンドプロンプトでコンパイルするときにメインクラスエラーを検出またはロードできませんでしたが、intelliJIDEAでは機能します

分類Dev

別のジェイソンエージェントにアクションを送信できません

分類Dev

Gradle同期で突然エラーが発生しました-ビルドツールバージョン27.0.1およびサポートバージョン27.0.1などがAndroidStudioプロジェクトに見つかりません

分類Dev

nettyでアプリケーションを作成し、クライアントからサーバーにメッセージを送信しましたが、サーバーがメッセージを受信できません

分類Dev

ポート587およびserver = "smtp.gmail.com"を持つSSLソケットをハンドシェイクできません

分類Dev

Mojaveにrubyのバージョンをインストールできません-内部ranlibコマンドが失敗しました

分類Dev

どのプログラムまたはアプリケーションがJavaサーバーコード、Androidクライアントコード、および非同期タスクコードをコンパイルできますか?

分類Dev

シェル関数内でunzipコマンドを使用しようとしたときに「アーカイブ::コマンドが見つかりません」

分類Dev

コマンドライン/シェルスクリプトを介して外部SMTPサーバー経由でメールを送信する

分類Dev

TrueStudio「GDB バージョン コマンドを判別できませんでした」エラー

分類Dev

コンポーネントにvuexアクションをマッピングできませんでした

分類Dev

InvalidArgumentError:アサーションに失敗しました:[バイトをJPEG、PNG、GIF、またはBMPとしてデコードできません]

分類Dev

EVAL、SCAN、およびDELを使用したRedisワイルドカード削除スクリプトは、「非決定論的コマンドの後にコマンドを書き込むことはできません」を返します。

分類Dev

system.time()でRコードのタイミングをとるときに、「オブジェクトが見つかりません」および「予期しないシンボル」エラーが発生します

分類Dev

リンクコードを追加した後、Webサイトにショートカットアイコンを表示できませんか?

分類Dev

オブジェクトをデータベースにマージしようとしたときに、リフレクションによってフィールド値を設定できませんでした

分類Dev

iOSアプリでParseおよびBoltsフレームワークをアップグレードした後にコンパイルできません

分類Dev

Bundlerは、手動でインストールおよび削除されたgemの正しい(依存する)バージョンを解決できません

分類Dev

コンソールプロジェクトで参照番号の形式を「バイト」または「ショート」に設定できませんか?

分類Dev

macOS 10.12でRustコードをコンパイルできません:オブジェクトファイルは、リンクされている(8.0)よりも新しいOSXバージョン(10.7)用にビルドされています

分類Dev

SIM900RS232モジュールでATコマンドを使用して変数データをphpサーバーに送信できません

分類Dev

Dot NetCoreおよびAzureStorage:ファイルまたはアセンブリシステムを読み込めませんでした、バージョン= 4.0.0.0

分類Dev

バージョンXCode7.3.1およびOSX10.11.6を使用してアプリをiTunesに送信することはできません

分類Dev

ajaxcorovaを使用してサーバーに送信されたJSONデータを取得およびデコードできません

Related 関連記事

  1. 1

    メッセージをSMTPサーバーに送信できませんでした。トランスポートエラーコードは0x80040217でした。サーバーの応答は利用できませんでした

  2. 2

    TFS プロジェクトで、Visual Studio は WCF クラスを「型または名前空間が見つかりませんでした」としてマークしますが、完全にコンパイルおよびビルドできます。

  3. 3

    Python3.8-FastAPIおよびサーバーレス(AWS Lambda)-APIエンドポイントに送信されたファイルを処理できません

  4. 4

    コルドバAndroidプロダクションリリースにロードするCSSおよびJSファイルを取得できません

  5. 5

    ElementCollectionおよび「ロールのコレクションを遅延初期化できませんでした」例外

  6. 6

    エラー:日食およびコマンドプロンプトでコンパイルするときにメインクラスエラーを検出またはロードできませんでしたが、intelliJIDEAでは機能します

  7. 7

    別のジェイソンエージェントにアクションを送信できません

  8. 8

    Gradle同期で突然エラーが発生しました-ビルドツールバージョン27.0.1およびサポートバージョン27.0.1などがAndroidStudioプロジェクトに見つかりません

  9. 9

    nettyでアプリケーションを作成し、クライアントからサーバーにメッセージを送信しましたが、サーバーがメッセージを受信できません

  10. 10

    ポート587およびserver = "smtp.gmail.com"を持つSSLソケットをハンドシェイクできません

  11. 11

    Mojaveにrubyのバージョンをインストールできません-内部ranlibコマンドが失敗しました

  12. 12

    どのプログラムまたはアプリケーションがJavaサーバーコード、Androidクライアントコード、および非同期タスクコードをコンパイルできますか?

  13. 13

    シェル関数内でunzipコマンドを使用しようとしたときに「アーカイブ::コマンドが見つかりません」

  14. 14

    コマンドライン/シェルスクリプトを介して外部SMTPサーバー経由でメールを送信する

  15. 15

    TrueStudio「GDB バージョン コマンドを判別できませんでした」エラー

  16. 16

    コンポーネントにvuexアクションをマッピングできませんでした

  17. 17

    InvalidArgumentError:アサーションに失敗しました:[バイトをJPEG、PNG、GIF、またはBMPとしてデコードできません]

  18. 18

    EVAL、SCAN、およびDELを使用したRedisワイルドカード削除スクリプトは、「非決定論的コマンドの後にコマンドを書き込むことはできません」を返します。

  19. 19

    system.time()でRコードのタイミングをとるときに、「オブジェクトが見つかりません」および「予期しないシンボル」エラーが発生します

  20. 20

    リンクコードを追加した後、Webサイトにショートカットアイコンを表示できませんか?

  21. 21

    オブジェクトをデータベースにマージしようとしたときに、リフレクションによってフィールド値を設定できませんでした

  22. 22

    iOSアプリでParseおよびBoltsフレームワークをアップグレードした後にコンパイルできません

  23. 23

    Bundlerは、手動でインストールおよび削除されたgemの正しい(依存する)バージョンを解決できません

  24. 24

    コンソールプロジェクトで参照番号の形式を「バイト」または「ショート」に設定できませんか?

  25. 25

    macOS 10.12でRustコードをコンパイルできません:オブジェクトファイルは、リンクされている(8.0)よりも新しいOSXバージョン(10.7)用にビルドされています

  26. 26

    SIM900RS232モジュールでATコマンドを使用して変数データをphpサーバーに送信できません

  27. 27

    Dot NetCoreおよびAzureStorage:ファイルまたはアセンブリシステムを読み込めませんでした、バージョン= 4.0.0.0

  28. 28

    バージョンXCode7.3.1およびOSX10.11.6を使用してアプリをiTunesに送信することはできません

  29. 29

    ajaxcorovaを使用してサーバーに送信されたJSONデータを取得およびデコードできません

ホットタグ

アーカイブ