JAVAを使ったメール送信が時々失敗します

このQ&Aのポイント
  • JAVAを使ったメール送信で時々エラーが発生し、メールが送信できない問題について質問します。
  • 具体的なエラーメッセージは「javax.mail.MessagingException: [EOF]」で、メール送信中に問題が発生しているようです。
  • 同じプログラムを利用しているにもかかわらず、一部のメール送信でエラーが発生する理由がわかりません。助言をお願いします。
回答を見る
  • ベストアンサー

JAVAを使ったメール送信が時々失敗します

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1091837 でお世話になったmizukiです。 おかげさまで、JAVAを使って、添付ファイルも送信できるようになったのですが、 時々下記エラーが出ます。このエラーが出ると、メールが送信できていません。 プログラムは http://www.hellohiro.com/src/HelloWorldJavaMail.java や前回教えていただいた回答の、No,3の補足説明を少し改良しただけの、 ほとんど同じものを利用しています。 分かる方教えて下さい。よろしくお願いいたします。 javax.mail.MessagingException: [EOF] at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020) at com.sun.mail.smtp.SMTPTransport.finishData(SMTPTransport.java:942) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:391) at email.Email.eMail(Email.java:63) at Test.main(Test.java:112)

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.1

APIリファレンスを見る限りでは、Transport#sendMessage()がMessagingExceptionを スローするのはサーバとの接続状態にない場合です。何らかの原因でコネクションが 切断されてしまうのだと思うのですが、この質問から原因をつきとめるのは難しいかもしれません。 送信できる時とエラーが発生する時では、全く同じ処理をしているのでしょうか? また、ソースコードを公開したほうが回答がつきやすいかと思います。

参考URL:
http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/mail/Transport.html

関連する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初心者ですが、どうかよろしくお願いいたします。

  • javaを使ってメールがしたい

    JAVAを使えば、Outlookを使わなくても、メールを送付できると書いてあったのですが nested exception is: class javax.mail.MessagingException: Could not connect to SMTP host: localhost, port: 25; というエラーが出て送付できません。 JavaMailの環境は何とか用意できたのですが送ることができません。 いったいどうすればよいのでしょうか? なお、コードは、下記のコピーです。 http://www.hellohiro.com/src/HelloWorldJavaMail.java 宜しくお願い致します。

    • ベストアンサー
    • Java
  • 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 開発環境では問題ないので、ソースに不備はないと考えているのですが、 どなたか同じ様なケースになって解決された方いませんでしょうか? ご教授宜しくお願い致します。

  • firefox2.0 JAVAエラーが出ます

    JAVA(アプレット?)を使用したページを表示しようとするとエラーが出て止まってしまいます。そのときに出るエラーの文は java.lang.NullPointerException Javaコンソールを開くと Java Plug-in 1.6.0_03 使用中の JRE のバージョン 1.6.0_03 Java HotSpot(TM) Client VM ユーザのホームディレクトリ = C:\Documents and Settings\Administ java.lang.NullPointerException at com.sun.deploy.net.proxy.DynamicProxyManager.reset(Unknown Source) at com.sun.deploy.net.proxy.DeployProxySelector.reset(Unknown Source) at sun.plugin.AppletViewer.initEnvironment(Unknown Source) と出ます。何度再インストールしても治りません。どうにかなりませんか?

  • 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("送信メール作成完了"); } よろしくお願い致します。

  • eclipseでのjogl利用について

    ネットで調べた通りにビルドパスを構成したつもりなんですけど Exception in thread "main" java.lang.UnsatisfiedLinkError: no jogl in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682) at java.lang.Runtime.loadLibrary0(Runtime.java:822) at java.lang.System.loadLibrary(System.java:993) at com.sun.opengl.impl.NativeLibLoader.loadLibraryInternal(NativeLibLoader.java:189) at com.sun.opengl.impl.NativeLibLoader.access$000(NativeLibLoader.java:49) at com.sun.opengl.impl.NativeLibLoader$DefaultAction.loadLibrary(NativeLibLoader.java:80) at com.sun.opengl.impl.NativeLibLoader.loadLibrary(NativeLibLoader.java:103) at com.sun.opengl.impl.NativeLibLoader.access$200(NativeLibLoader.java:49) at com.sun.opengl.impl.NativeLibLoader$1.run(NativeLibLoader.java:111) at java.security.AccessController.doPrivileged(Native Method) at com.sun.opengl.impl.NativeLibLoader.loadCore(NativeLibLoader.java:109) at com.sun.opengl.impl.windows.WindowsGLDrawableFactory.<clinit>(WindowsGLDrawableFactory.java:60) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:164) at javax.media.opengl.GLDrawableFactory.getFactory(GLDrawableFactory.java:106) at javax.media.opengl.GLCanvas.chooseGraphicsConfiguration(GLCanvas.java:520) at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:131) at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:90) at javax.media.opengl.GLCanvas.<init>(GLCanvas.java:83) at demos.gears.Gears.main(Gears.java:19) このような、エラーが出ました。 どうしたら、いいかわかりません。教えていただけないでしょうか!!

  • javaに詳しい方に質問です

    javaに詳しい方に質問です 私は家ではwindowXP、学校ではUNIXを使ってjavaを勉強中です あるブロック崩しのプログラムがあるのですが、家では実行出来たのですが、 学校ではよくわからないエラーが出てしまいました 内容は下記の通り [c]$ cd java [c java]$ javac Blockdx.java [c java]$ appletviewer Blockdx.html Warning: Cannot convert string "-misc-kochi mincho-medium-r-normal--*-140-*-*-c-*-jisx0208.1983-0" to type FontStruct java.lang.UnsupportedClassVersionError: Blockdx (Unsupported major.minor version 50.0) at java.lang.ClassLoader.defineClass0(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:539) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123) at sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:157) at java.lang.ClassLoader.loadClass(ClassLoader.java:289) at sun.applet.AppletClassLoader.loadClass(AppletClassLoader.java:123) at java.lang.ClassLoader.loadClass(ClassLoader.java:235) at sun.applet.AppletClassLoader.loadCode(AppletClassLoader.java:561) at sun.applet.AppletPanel.createApplet(AppletPanel.java:619) at sun.applet.AppletPanel.runLoader(AppletPanel.java:548) at sun.applet.AppletPanel.run(AppletPanel.java:299) at java.lang.Thread.run(Thread.java:534) javaのバージョンは下記の通り 自宅 1.4.2_05 学校 1.6.0_18 学校でも家でもBlockdx.javaとBlockdx.htmlの二つのファイルを用意して Blockdx.javaをコンパイルした後、appletviewer Blockdx.htmlで実行したのは同じです 学校の先生いわく、バージョンかなぁと言っていましたが、よくわからないのが本音だそうです わかる方いらっしゃいますか?

    • ベストアンサー
    • Java
  • javaプログラムのエラーについてです

    プログラムは無事コンパイルすることができました。 しかし、アプレットを実行すると以下のようなエラーが発生します。 なぜこのようなエラーが起こるのでしょうか?勉強不足ですいません。 Exception in thread "AWT-EventQueue-1" java.lang.ArrayIndexOutOfBoundsException: 2 at sample1.paint(sample1.java:19) at java.awt.Container.update(Container.java:1988) at sun.awt.RepaintArea.updateComponent(RepaintArea.java:255) at sun.awt.RepaintArea.paint(RepaintArea.java:232) at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:347) at java.awt.Component.dispatchEventImpl(Component.java:4948) at java.awt.Container.dispatchEventImpl(Container.java:2287) at java.awt.Component.dispatchEvent(Component.java:4698) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735) at java.awt.EventQueue.access$200(EventQueue.java:103) at java.awt.EventQueue$3.run(EventQueue.java:694) at java.awt.EventQueue$3.run(EventQueue.java:692) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo main.java:76) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo main.java:87) at java.awt.EventQueue$4.run(EventQueue.java:708) at java.awt.EventQueue$4.run(EventQueue.java:706) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDo main.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:705) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre ad.java:242) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread. java:161) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:150) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138) at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

  • JAVAアプリを実行したいのですが...

    JAVAでフォームを表示するだけのアプリを作成しました。 rootでは実行できる(表示)できるのですが、一般ユーザーでは実行(表示)することができません。以下エラーの内容です。 Xlib: connection to ":0.0" refused by server Xlib: No protocol specified Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable. at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:134) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62) at java.awt.Window.init(Window.java:231) at java.awt.Window.<init>(Window.java:275) at java.awt.Frame.<init>(Frame.java:401) at java.awt.Frame.<init>(Frame.java:366) at MyFrame.<init>(test2.java:5) at test2.main(test2.java:18) JAVAもLinuxも始めたばかりでどう説明すればよいのか分かりませんが、環境はつぎのとおりです。 Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04) Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode) Fedora Core 1 /etc/profile に export JAVA_HOME=/usr/java/j2sdk1.4.2_05 PATH=$PATH:$JAVA_HOME/bin: を追加しています。 説明不足なところがございましたら、ご指摘願います。 よろしくお願いします。

  • javaに詳しい方に質問です

    javaに詳しい方に質問です 私が使っているパソコンはwindowXPで今BG.java , BG.html の2つのファイルがあります ブロック崩しのソースです コマンドプロンプト上で下記のように操作をしたら、(画面の貼り方がわからなく申し訳ありません) C:\j2sdk1.4.2_05\bin>javac BG.java C:\j2sdk1.4.2_05\bin>appletviewer BG.html Exception in thread "main" java.util.MissingResourceException: Can't find resour ce for bundle sun.applet.resources.MsgAppletViewer, key appletpanel.badattribute .exception at java.util.ResourceBundle.getObject(ResourceBundle.java:314) at java.util.ResourceBundle.getObject(ResourceBundle.java:311) at java.util.ResourceBundle.getString(ResourceBundle.java:274) at sun.applet.AppletMessageHandler.getMessage(AppletMessageHandler.java: 39) at sun.applet.AppletPanel.showAppletStatus(AppletPanel.java:755) at sun.applet.AppletPanel.init(AppletPanel.java:190) at sun.applet.AppletViewer.<init>(AppletViewer.java:177) at sun.applet.StdAppletViewerFactory.createAppletViewer(AppletViewer.jav a:82) at sun.applet.AppletViewer.parse(AppletViewer.java:1122) at sun.applet.AppletViewer.parse(AppletViewer.java:1056) at sun.applet.Main.run(Main.java:138) at sun.applet.Main.main(Main.java:80) というなんだかよくわからない表示がされて実行がされませんでした 本当ならプログラムを張り付けたかったのですが、文字数に制限があるし ダウンロード先を忘れてしまいまして… ということなので詳しいことは構わないので、この表示が何を表しているのか ご回答お願いします

    • ベストアンサー
    • Java

専門家に質問してみよう