• 締切済み

Javamailで困っています。

開発環境(Eclipse+tomcat)でJavamailが正常に実行出来、メールが送れるのですが、 実行環境(tomcat7を使用してのWebアプリケーション上)ではmailが送れないです。 【バージョン】 tomcat7 mail1.4.4 jdk1.7 Windows7(開発環境、実行環境共に) 【エラー内容】 javax.mail.MessagingException: Could not connect to SMTP host: smtp.xxx.co.jp, port: 25; nested exception is: java.net.SocketException: Permission denied: connect at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1934) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:638) at javax.mail.Service.connect(Service.java:317) at javax.mail.Service.connect(Service.java:176) at javax.mail.Service.connect(Service.java:125) at javax.mail.Transport.send0(Transport.java:194) at javax.mail.Transport.send(Transport.java:124) OracleのページでJDK7の場合はIPv4を使う様にすると書いてあったので、 tomcat起動時にjavaオプションを追加していますが、それでもmailが送れません。 -Djava.net.preferIPv4Stack=true 参考URL:http://www.oracle.com/technetwork/java/javamail/faq-135477.html#ipv6perm 開発環境では問題ないので、ソースに不備はないと考えているのですが、 どなたか同じ様なケースになって解決された方いませんでしょうか? ご教授宜しくお願い致します。

  • Java
  • 回答数3
  • ありがとう数4

みんなの回答

  • teketon
  • ベストアンサー率65% (141/215)
回答No.3

>開発環境も実行環境も同じネットワーク内にあるのですが、 >そういう事は可能なのでしょうか? だから、それを確認するんでしょ。

  • teketon
  • ベストアンサー率65% (141/215)
回答No.2

>ネットワークの問題とはどの様な問題でしょうか? >私はネットワークが苦手なので教えて頂けると大変助かります。 SMTPサーバ側のネットワーク設定で、 実行環境からの接続を切断されているのではないか?ということです。

hiroshimakun
質問者

補足

開発環境も実行環境も同じネットワーク内にあるのですが、 そういう事は可能なのでしょうか?

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

実行環境から、SMTPサーバへの接続はできますか? ネットワークの問題のように見えます。

hiroshimakun
質問者

補足

実行環境からpingでSMTPサーバへの通信は出来ています。 だた、tera termでの接続は出来ていません。 ネットワークの問題とはどの様な問題でしょうか? 私はネットワークが苦手なので教えて頂けると大変助かります。

関連するQ&A

  • JavaMailでのメール送信

    JavaMail でメールを送信しようとしていますが、うまく送信できません。 SMTPサーバはユーザ認証とPOP before SMTP です。 コードの一部を抜粋しますと Session session = Session.getDefaultInstance(props, null); Store store = session.getStore("pop3"); store.connect(host, user, pass); MimeMessage message = new MimeMessage(session); --途中省略-- Transport transport = session.getTransport("smtp"); transport.connect(null, user, pass); transport.sendMessage(message, message.getAllRecipients()); となっています。一番下の行で以下のエラーが出ます。 javax.mail.MessagingException: Could not connect to SMTP host: ***.***.***.***, port: 25; nested exception is: java.net.SocketException: Software caused connection abort: connect at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:311) at javax.mail.Service.connect(Service.java:233) at javax.mail.Service.connect(Service.java:134) at SendMail.sendMessage(SendMail.java:346) at SendMail.main(SendMail.java:162) Java初心者ですが、どうかよろしくお願いいたします。

  • JavaMail smtp.mail.yahoo.co.jp

    お世話になります。 JavaMail1.4を用いて、 自作プログラム内でメール送信を行おうとしているのですが、 エラーが返ってきてしまいます。 以下エラー内容です。 DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.mail.yahoo.co.jp", port 25, isSSL false javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.yahoo.co.jp, port: 25; nested exception is: java.net.ConnectException: Connection timed out: connect at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1227) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:322) at javax.mail.Service.connect(Service.java:258) at javax.mail.Service.connect(Service.java:137) at javax.mail.Service.connect(Service.java:86) at javax.mail.Transport.send0(Transport.java:150) at javax.mail.Transport.send(Transport.java:80) at partsPackage.MailTransfer.send(MailTransfer.java:135) at partsPackage.Tester.main(Tester.java:14) 設定が悪いのか、 サーバーの指定等が悪いのか検討が付かない状況です。 ソースは final String username = "○○○○"; final String password = "○○○○"; final String from_name = "○○○○"; final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; Session session = null; MimeMessage mimeMessage = null; String charset = "UTF8"; String sendTo = null; String title = null; String contents = null; public MailTransfer(){} public MailTransfer(String charset){this.charset=charset;} boolean isConnected(){return session!=null;} public boolean hasMessage(){return mimeMessage!=null;} public boolean hasDestination(){return sendTo!=null;} public boolean hasTitle(){return title!=null;} public boolean hasText(){return contents!=null;} void connect(){ Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); Properties props = System.getProperties(); props.setProperty("mail.smtp.host", "smtp.mail.yahoo.co.jp"); props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); props.setProperty("mail.smtp.socketFactory.fallback", "false"); props.setProperty("mail.smtp.port", "25"); props.setProperty("mail.smtp.socketFactory.port", "25"); props.put("mail.smtp.auth", "true"); props.put("mail.debug", "true"); session = Session.getInstance(props, new Authenticator(){ protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); } public void create_mail(){ System.out.println("送信メール作成"); if(!isConnected())connect(); if(hasMessage())return; mimeMessage=new MimeMessage(session); try { // 送信元メールアドレスと送信者名を指定 mimeMessage.setFrom(new InternetAddress(username+"@yahoo.co.jp",from_name,charset)); // メールの形式を指定 mimeMessage.setHeader("Content-Type","text/html"); } catch (Exception e) { e.printStackTrace(); } System.out.println("送信メール作成完了"); } よろしくお願い致します。

  • JavaMailを使う前のTomcatの設定

    JavaMailでメールを送信するプログラムを作成しております。 バージョンは Tomcat5.5.33 JDK6.0_35 です。 いろいろ調べていると、JavaMailのAPIが必要という事がわかり、次のURLから http://www.oracle.com/technetwork/java/javamail/index.html javax.mail.jarとactivation.jarをダウンロードして TomcatのWEB-INF/libにコピーしました。 この設定で間違いはないでしょうか? まだメール送信はできておりません。 素人な質問で申し訳ありません。 どなたか、ご教授願います。

  • javamailを使ってのメール送信。

    james-2.0a3、javamail-1.2、pop3-1.1.1をインストールした後に環境変数もセットしました。ここでjavamailの参考サイト(http://www.showa-cats.com/technical/Java/javamail/index.htm)のサンプルプログラムを試しに実行しようとしたところ下記に示すエラーが出ました。windows2000Professional, j2sdk1.4.0_01, Tomcat3.3.1 サーブレット実行後のエラー 『Error: 500  場所: /netjv/servlet/MsgSend  内部のサーブレットのエラー:  java.lang.NoClassDefFoundError: javax/mail/Message       at MsgSend.doPost(msgsend.java:37)・・略』 tomcatコマンドプロンプトより 『2003-02-05 10:23:59 - Ctx(/netjv) : Exception in R( /netjv        + /servlet/MsgSend +   null) - java.lang.NoClassDefFoundError: javax/mail/Message at MsgSend.doPost(msgsend.java:37)・・略』 MsgSend.javaのソースより  『37:PrintWriter pw = response.getWriter();   38:try {   39://MsgSendBeansのインスタンスを取得   40:MsgSendBeans msb = new MsgSendBeans();』 37行目のMsgSendBeans.javaのインスタンスの取得がうまくいってないと思うのですが、どうしたらよいかがわかりません。どなたかよろしくお願いします。

  • javamailのインポートでエラー

    開発環境はeclipseを使用していますが、 import javax.mailでエラーが発生しています。 javamailは、「ウィンドウ」の「設定」の「java」の 「ビルドパス」の「クラスパス変数」にmail.jarを設定しています。 ご教授お願いします。

  • [Android+Javamail]送信できません

     こんにちは  Javamailを使ってAndroid用メールアプリの開発を志しているものです。  以下のサイトを参考にさせてもらってコードを作ってエミュレーターで動かしてみました。 http://yamato-iphone.blogspot.jp/2011/12/javamail.html http://d.hatena.ne.jp/ttshrk/20110517/1305641955 http://yaim.blogzine.jp/ability/2012/04/javamail_androi.html  ところが、下記のようなエラーで、メール送信ができませんでした。 12-23 10:56:36.225: W/System.err(541): javax.mail.MessagingException: Could not connect to SMTP host: smtp.hogehoge.jp, port: 587; 12-23 10:56:36.225: W/System.err(541): nested exception is: 12-23 10:56:36.235: W/System.err(541): javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x199c48: Failure in SSL library, usually a protocol error 12-23 10:56:36.235: W/System.err(541): error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol (external/openssl/ssl/s23_clnt.c:683 0x401e0c93:0x00000000)  また、 12-23 10:56:35.385: I/System.out(541): DEBUG: not loading file: /system/lib/javamail.providers 12-23 10:56:35.385: I/System.out(541): DEBUG: java.io.FileNotFoundException: /system/lib/javamail.providers: open failed: ENOENT (No such file or directory)  このようなログも吐き出されており、なにか足りないものがあるようなのですが…  単純なサンプルアプリなどは普通に動作していますので、開発環境にとりあえず不備はないと思います。  Javamail用の3つのファイルもビルドパスに加えてあります。  その他にも追加すべきライブラリがあるのでしょうか?  これだけの情報では、ご回答いただくのは難しいのかも知れませんが…  よろしくお願いいたします。

  • Jakarta NTサービスとともに動かすには。。。

    TOMCATをNTのサービスとしてバックグランドで実行させようとして その方法が書かれていた(http://www.ingrid.org/jajakarta/tomcat/tomcat-3.2.3/doc-ja/NT-Service-howto.html)を参考にしながらやっているのですが、うまくいきません。 環境は、Win2000、JDK1.3.1_02、TOMCAT3.2.4です。 サービスは登録されるのですが、サービスを開始すると途中でエラー以下のエラーがでて、実際には開始されません。 「システムエラーが発生しました。 システムエラーが1067発生しました。 プロセスを強制終了しました。」 logフォルダに出てくる「jvm.stderr」の内容は javax.xml.parsers.FactoryConfigurationError: java.lang.ClassNotFoundException: org.apache.crimson.jaxp.SAXParserFactoryImpl at javax.xml.parsers.SAXParserFactory.newInstance(SAXParserFactory.java:120) at org.apache.tomcat.util.xml.XmlMapper.readXml(XmlMapper.java:210) at org.apache.tomcat.startup.Tomcat.execute(Tomcat.java:187) at org.apache.tomcat.startup.Tomcat.main(Tomcat.java:240) Exception in thread "main" となります、なにがいけないのでしょうか。 よろしくお願いします。

    • ベストアンサー
    • Java
  • tomcatのメモリ限界?エラー

    サーバー環境がwin2000+apach+tomcatで、jspを実行させています。 しかしある処理をさせると下のようなエラーが出てしまい、もう一度tomcatを起動し直さなければ、正常に動きません。 サーバーのメモリーは1GBも積んでいるのですが・・・ tomcat側でのメモリーの限界なのでしょうか? 回答よろしくお願いします。 Internal Servlet Error: javax.servlet.ServletException: at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405) at org.apache.tomcat.core.Handler.service(Handler.java:287) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java:166) ・ ・ ・ Root cause: java.lang.OutOfMemoryError: at java.lang.String.(String.java, Compiled Code) at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:282) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:429) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java, Compiled Code) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405) at org.apache.tomcat.core.Handler.service(Handler.java:287) at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372) at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797) ・ ・ ・

    • ベストアンサー
    • Java
  • プロキシ経由でjavamailを使ってyahooにメール送信

    社内から社外へのネットワーク通信(インターネット)にはプロキシをかませています。 この環境下で、社内で、Javamailを使い、yahooへメール送信を行いたいと思っております。 ソースは以下です。 ---------------------------------------------------------------- //初期設定 Properties props = new Properties(); //接続するSMTP props.put("mail.smtp.host","smtp.mail.yahoo.co.jp"); //SMTP before POP3対応 props.put("mail.smtp.auth", "true"); //ポートの設定 props.put("mail.smtp.port", String.valueOf("25")); Session sess = Session.getInstance(props); MimeMessage mimeMessage = new MimeMessage(sess); //送信元メールアドレスと送信者名を指定 mimeMessage.setFrom(new InternetAddress("xxx@xxx.co.jp","name","iso-2022-jp")); //送信先メールアドレス指定 mimeMessage.setRecipients(Message.RecipientType.TO, "xxx@yahoo.co.jp"); //SUBJECT mimeMessage.setSubject("メールテスト","iso-2022-jp"); //SEND DATE mimeMessage.setSentDate(new Date()); //CONTENTS mimeMessage.setText("日本語OK?\n改行\n","iso-2022-jp"); Transport transport = sess.getTransport("smtp"); //認証用ユーザ名とパスワードを設定しコネクト transport.connect(null,"user name","password"); //メール送信 transport.sendMessage(mimeMessage, mimeMessage.getAllRecipients()); transport.close(); ---------------------------------------------------------------- 実行すると、Unknown SMTP host: smtp.yahoo.co.jp というエラーが出ます。 社外への通信は一度プロキシサーバを経由しているのが原因ではないかと思うのですが、どうしたらいいか分かりません。 どなたかご教授願います。

    • ベストアンサー
    • Java
  • javamailにて連続送信の際のエラー

    はじめまして.こんにちわ. いまjavamailを用いて,メール送信のプログラムを書いています. しかし,同じアドレスに送信の際に3通に1回程度エラーを返してきます.1通のみですと失敗はないのですが,複数のメールを連続で送るとエラーを返します. エラーは以下のものになります. javax.mail.AuthenticationFailedException これは認証エラーのようですが,同じSMTPを使用しているので,うまく送信できていることもあることから,方法として間違えているのではなく,何か他の部分が悪さをしているのかと思っています.例えば,次のメールがclose する前に connect をかけているのかな,と考えたりしています.そのために,transport.close() が終わった段階で1秒間ほど待つようにしてみたりしたのですが,解決できませんでした. 何か原因として考えられることありましたら,教えていただけないでしょうか.お願いいたします. また,次に今回用いている送信するクラスをつけます.呼び出す際にはこのクラスのインスタンスをつくり,送信の際にタイトルとメッセージ,添付ファイルを書き換えながら,送信用のメソッドを連続的に呼び出すことで実装しています. なにぶんjavaはまだ触り初めて日が浅いために,他の部分にて勘違いしている部分などもありましたら,そちらのご指摘もお願いいたします.

    • ベストアンサー
    • Java

専門家に質問してみよう