javamailでメールを送信しようとすると
エラーが表示されます。
コードとエラー内容http://oshiete.goo.ne.jp/qa/6678667.html
いったい何が原因なのかさっぱりわかりません
パソコンのセキュリティソフトはすべて削除しましたし
ファイアーウォールも無効にしています。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

No3の回答が何故「調査中」なのか不明なのですが(単にjavaのプログラムなのに・・・)、


http://detail.chiebukuro.yahoo.co.jp/qa/question …
に似たようなプログラムがありますので、見てみてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
解答の手順どうりに行ったところメール送信を行うことができました。
jakarta-comons-emailでもメール送信を行うことができました。
ちょっと感動しています。
msnのメール送信ではoutlookからも送信できなかったのでそれがおそらく原因
なのかなと思っています。
ありがとうございました。

お礼日時:2011/04/28 17:20

import java.util.*;


import javax.mail.*;
import javax.mail.internet.*;

public class MailTransfer{
public static void main(String[] args) {
try {
// SMTPサーバー設定
Properties props = System.getProperties();
props.setProperty( "mail.smtp.port", "587");
props.setProperty("mail.smtp.socketFactory.port", "587");
props.put( "mail.smtp.host", "smtp.mail.yahoo.co.jp" );
props.setProperty("mail.smtp.auth", "true");
Session session = Session.getInstance(props, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication( "ユーザー名", "パスワード" );
}
});
MimeMessage mimeMessage=new MimeMessage( session );

// 送信元メールアドレスと送信者名を指定
mimeMessage.setFrom( new InternetAddress( "ユーザー名@yahoo.co.jp", "ユーザー名", "ISO-2022-JP" ) );
// 送信先メールアドレスを指定
mimeMessage.setRecipients( Message.RecipientType.TO, "送信先@yahoo.co.jp" );
// メールのタイトルを指定
mimeMessage.setSubject( "メールテスト", "ISO-2022-JP" );
// メールの内容を指定
mimeMessage.setText( "こんにちは\n", "ISO-2022-JP" );
// メールの形式を指定
mimeMessage.setHeader( "Content-Type", "text/html" );
// 送信日付を指定
mimeMessage.setSentDate( new Date() );
// 送信します
Transport.send( mimeMessage );
} catch (Exception e) {
e.printStackTrace();
}
}
}

PasswordAuthenticationのところで指定する、ユーザー名は取得したアカウントでyahooの場合「@yahoo.co.jp」は不要ですので気をつけてください。
ex. xxxxx@yahoo.co.jpというメールアドレスなら、"xxxxx","パスワード"

// 送信元メールアドレスと送信者名を指定
の部分ですが、送信元の "メールアドレス","送信した人の名前" を指定します。
ex. 送る人が山田なら、 "yamada@yahoo.co.jp","山田"

あと、別に無くても良い部分がありますが、カスタマイズしてください。
ちなみに、初回送ると届くのに数分かかる場合があります。
    • good
    • 0

hotmailはちょっと工夫が必要かもしれません。

若しくはサーバーの指定が違うのかもしれません。一応、yahoo、so-net、nifty、OCN、.biglobe等では上手く送受信の実績ありますが。。。
他の回答者様からの回答を待ってください。私はココまでで。

PS.
yahooのメールサーバーではダメなのでしょうか?
OKなら解説できるのですが・・・
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
yahooのメールアドレスを作成しましたのでyahooのメールサーバでの
接続方法を教えていただけませんでしょうか。
よろしくお願いいたします。

お礼日時:2011/04/27 10:05

hotamilのサーバーが、どのような設定になってるか分かりません。

参考までという事で。

1.PopBeforeSMTPな場合。
>>Session session=Session.getDefaultInstance(objPrp,null);
の下の行に、
Store store = session.getStore("pop3");
store.connect(pop3Host, "ユーザー名", "パスワード" );
を追加。


2.hotamilのSMTPサーバーがサブミッション・ポートを使用している場合。
>>Properties objPrp=new Properties();
の下の行に、
objPrp.setProperty( "mail.smtp.port", "587");
を追加。

>>Session session=Session.getDefaultInstance(objPrp,null);
を、
Session session = Session.getInstance(objPrp, new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication( "ユーザー名", "パスワード" );
}
});
に変更。

尚、ユーザー名とパスワードは取得したアカウントのものを用います。


ちなみにJakarta Commons-Emailを使うと少々、楽にできますけどね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。解答どうりにコードを修正した結果以下のエラーがでました。
1.のコードの場合
javax.mail.MessagingException: Connect failed;
nested exception is:
java.net.ConnectException: Connection refused: connect


javax.mail.MessagingException: Could not connect to SMTP host: smtp.email.msn.com, port: 25;
nested exception is:
java.net.ConnectException: Connection timed out: connect
というエラーが直ぐに帰ってきた。

2.のコードの場合
javax.mail.MessagingException: Could not connect to SMTP host: smtp.email.msn.com, port: 587;
というエラー



お忙しいところ申し訳ありませんが再度解決策を考えていただけませんでしょうか。

お礼日時:2011/04/26 16:11

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qmultiple definitionというエラー

現在Ubuntu LinuxのgccでC言語のプログラムをやっています。

https://sourceforge.jp/projects/cc1101driver/scm/svn/blobs/2452/trunk/20140411/code.h

このツリーのcode.hに ”const sig_code2_t PVC_TCP_SIG_CODE[100] = {” というコードを追加してmakeを行うと次のようなエラーが出て実行ファイルが出力されません。



(エラー内容)

---------------(中略)-----------------
gcc -o exe main.o event.o env.o audio.o task.o comm.o menu_show_status.o mount.o net.o misc.o -lpthread
event.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
env.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
audio.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
task.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
comm.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
mount.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
net.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
misc.o:(.rodata+0x0): multiple definition of `PVC_TCP_SIG_CODE'
main.o:(.rodata+0x0): first defined here
collect2: error: ld returned 1 exit status
make: *** [exe] Error 1






この const sig_code2_t PVC_TCP_SIG_CODE[100] = {をコメントアウト正常にビルドできるのですが、




この問題を解決するにはどうすれば良いのかご教示頂きますようお願い致します。

現在Ubuntu LinuxのgccでC言語のプログラムをやっています。

https://sourceforge.jp/projects/cc1101driver/scm/svn/blobs/2452/trunk/20140411/code.h

このツリーのcode.hに ”const sig_code2_t PVC_TCP_SIG_CODE[100] = {” というコードを追加してmakeを行うと次のようなエラーが出て実行ファイルが出力されません。



(エラー内容)

---------------(中略)-----------------
gcc -o exe main.o event.o env.o audio.o task.o comm.o menu_show_status.o mount.o net.o misc.o -lpthread
event.o:(.rodat...続きを読む

Aベストアンサー

お約束の「ヘッダに実体を定義してはいけない」ってヤツです。

code.hに記述した内容はall_includes.hに適用されます。
all_includes.h内で#include "code.h"していますからね。

で、all_includes.hの内容はそれぞれ
audio.c、comm.c、env.c、event.c、main.c、misc.c、mount.c、net.c、task.cに適用されます。
つまり、code.hに記述した内容も
audio.c、comm.c、env.c、event.c、main.c、misc.c、mount.c、net.c、task.cに適用されます。
それぞれのオブジェクトファイルにPVC_TCP_SIG_CODE[100]が存在します。

リンクする段階でどのオブジェクトファイルのPVC_TCP_SIG_CODE[100]を使用したらいいのでしょうか?????
というエラーです。

extern宣言して、実体をどこかのソースファイルのみに記述する。
というのが一般的な対処方法です。
# static宣言にすればとりあえずリンクは通るかもしれませんが…無駄が出ますねぇ。
# 今回はconstなので、メモリに無駄が出るだけ…で済むかと思われますが。
http://d.hatena.ne.jp/saitodevel01/20110321/1300685958

お約束の「ヘッダに実体を定義してはいけない」ってヤツです。

code.hに記述した内容はall_includes.hに適用されます。
all_includes.h内で#include "code.h"していますからね。

で、all_includes.hの内容はそれぞれ
audio.c、comm.c、env.c、event.c、main.c、misc.c、mount.c、net.c、task.cに適用されます。
つまり、code.hに記述した内容も
audio.c、comm.c、env.c、event.c、main.c、misc.c、mount.c、net.c、task.cに適用されます。
それぞれのオブジェクトファイルにPVC_TCP_SIG_CODE[100]が存在します。...続きを読む

Qjavamailで複数人にメールを送信する。

現在javamailを使って複数人の人にメールを送るjspページを作っています。
一人の人にメールを送信することはできたのですが、
複数の宛先に送信する方法がわかりません。
本で調べたところ

void setRecipients(
Message.RecipientType type,
Address[] addresses)
というメソッドで配列で複数のアドレスを指定できる。

とのことなのですが、具体的な方法がわかりません。
どのようにすればよいのでしょうか?
具体的な例などがあったら助かります。
よろしくお願いします。

Aベストアンサー

Addressの配列で複数指定してあげれば、問題ないですね。

new InternetAddress(MAIL_ADDRESS,INTERNET_NAME,ENCODING);
MAIL_ADDRESS:メールアドレス
INTERNET_NAME:メールの名前部分
ENCODING:エンコーディング iso-2022-jpになるのかな?と思います。
これを送信する分Address配列を作って、
setRecipientsにセットします。

私の場合には、ArrayList に入れて、配列に変換しています。
list.add((Address)new InternetAddress・・・・・);
で詰めて、
(Address[])list.toArray(new Address[list.size()]);
で配列に変換

こんな感じでいけるかと思います。

Qbear the definitions

bear the definitions
という場合、このbearはどういう訳となるのでしょうか?


Bold and capitalized terms not defined herein bear the definitions in the Competition Packet.
という文で使われていました。

「ここで定義していない太字と大文字表記は、Competition Packetに定義されている」という意味でしょうか?

Aベストアンサー

yes

Qjavamailにて連続送信の際のエラー

はじめまして.こんにちわ.
いまjavamailを用いて,メール送信のプログラムを書いています.

しかし,同じアドレスに送信の際に3通に1回程度エラーを返してきます.1通のみですと失敗はないのですが,複数のメールを連続で送るとエラーを返します.
エラーは以下のものになります.
javax.mail.AuthenticationFailedException

これは認証エラーのようですが,同じSMTPを使用しているので,うまく送信できていることもあることから,方法として間違えているのではなく,何か他の部分が悪さをしているのかと思っています.例えば,次のメールがclose する前に connect をかけているのかな,と考えたりしています.そのために,transport.close() が終わった段階で1秒間ほど待つようにしてみたりしたのですが,解決できませんでした.

何か原因として考えられることありましたら,教えていただけないでしょうか.お願いいたします.

また,次に今回用いている送信するクラスをつけます.呼び出す際にはこのクラスのインスタンスをつくり,送信の際にタイトルとメッセージ,添付ファイルを書き換えながら,送信用のメソッドを連続的に呼び出すことで実装しています.

なにぶんjavaはまだ触り初めて日が浅いために,他の部分にて勘違いしている部分などもありましたら,そちらのご指摘もお願いいたします.

はじめまして.こんにちわ.
いまjavamailを用いて,メール送信のプログラムを書いています.

しかし,同じアドレスに送信の際に3通に1回程度エラーを返してきます.1通のみですと失敗はないのですが,複数のメールを連続で送るとエラーを返します.
エラーは以下のものになります.
javax.mail.AuthenticationFailedException

これは認証エラーのようですが,同じSMTPを使用しているので,うまく送信できていることもあることから,方法として間違えているのではなく,何か他の部分が悪さをしているのか...続きを読む

Aベストアンサー

エラーの内容を見る限りでは確かに、認証関連でエラーがでていますね。送信時のエラーに関してはSMTPサーバがAUTH認証を要求してるってことはないでしょうか?
参考URLにJavaMailを利用したAUTH認証を行い送信するサンプルがありますので、一度、実装してみてはいかがでしょうか?それでもエラーがでる様であれば、singletonモデルでテストしてみるのもいいかもしれません。

参考URL:http://www.geocities.co.jp/Playtown/7799/progmemo/javamail_send.htm

Qウィンドウズのアップデートで10月20日に、Definition Up

ウィンドウズのアップデートで10月20日に、Definition Update for wWindows Defender-KB015597(Definition 1.93.26.0)が2回インストールされましたが、そのあとにもう一つ「更新プログラムをインストールしています(50パーセント完了)」とありますが、今日で3日連続表示され、インストールが進みません。なにか解決方法はないでしょうか?PCは初心者クラスです。よろしくお願いします。

Aベストアンサー

>今日で3日連続表示され、インストールが進みません。
ちょっと状況がつかめません。
毎日の起動時に同じ内容が表示されることが3回続いた、ということでしょうか。それとも、72時間の間ずっと「(50パーセント完了)」の状態なのでしょうか。

前者なら
http://menushowdelay.blog13.fc2.com/blog-entry-523.html
とその中のリンクを。
後者なら、とりあえず再起動しましょう。

QJavaMailが送信できない

urizakaです
以前WindowsNT(+ IIS4.0 + Tomcat)上で動かしていたシステムをLinux(RedHat7.3 + Apache1.3.24 + tomcat3.3a)に移植したのですが、Mailの送信機能だけがなぜかうまく動きません。具体的には、以下のようなメッセージが出てきてしまいます。

「class javax.mail.SendFailedException: 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)」

プログラムのコンパイルはj2sdk1.4.0_01で,使ったJarファイルはmail.jarです。 
 もしかするとLinuxの設定の問題なのかもしれませんが、すみませんが、ご存知の方いらっしゃったらお願いします。

Aベストアンサー

> 553 sorry, that domain isn't in my list of allowed rcpthosts (#5.7.1)

というのはメールサーバに関する設定(中継可能ドメイン外からのメール中継時のエラー)のようですが。

JavaMail(Javaプログラム)でどうということではなく、Linuxマシン上からの
メール送信全てがNGではないでしょうか?

参考URL:http://www.y-min.or.jp/~nob/qmail/relay.html

QOn Error GoTo でエラーが発生する

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1

ErrorTrap1:

On Error GoTo 0

   Do
   On Error GoTo ErrorTrap2
      '-エラーの発生するコード 2
   On Error GoTo 0
   Loop

ErrorTrap2:

End Sub

しかし、以下のようにSubで二つに分けるとエラーは出ません。

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1

ErrorTrap1:

On Error GoTo 0

Call Macro2

End Sub
Sub Macro2()

    Do
     On Error GoTo ErrorTrap2
      '-エラーの発生するコード 2
    On Error GoTo 0
    Loop

  ErrorTrap2:

End Sub

「On Error GoTo 0」がうまく解除できていないのかと思い、いろいろ試してみました。
しかし、どういった理由かはわかりませんでした。
「On Error GoTo」は、Subでは、ひとつしか使えないのでしょうか。

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1

ErrorTrap1:

On Error GoTo 0

   Do
   On Error GoTo ErrorTrap2
      '-エラーの発生するコード 2
   On Error GoTo 0
   Loop

ErrorTrap2:

End Sub

しかし、以下のようにSubで二つに分けるとエラーは出ません。

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1

ErrorTrap1:

On Error GoTo 0

Call Macro2

End Sub
Sub Macro2()

    Do
     On Error G...続きを読む

Aベストアンサー

エラー処理の中でOn Error GoToを記述することはできません。


エラー処理の基本的な構造は、

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1
On Error GoTo 0

Exit Sub

ErrorTrap1:
  'エラー処理
  Resume Next

End Sub


エラー処理が2つある場合は、

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1
On Error GoTo 0

Do
  On Error GoTo ErrorTrap2
    '-エラーの発生するコード 2
  On Error GoTo 0
Loop

Exit Sub

ErrorTrap1:
  'エラー処理1
  Resume Next

ErrorTrap2:
  'エラー処理2
  Resume Next

End Sub


Resume Next でエラーが発生した行の次の行から再開します。
Resumeには他の構文もありますので、調べてみてください。

エラー処理の中でOn Error GoToを記述することはできません。


エラー処理の基本的な構造は、

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1
On Error GoTo 0

Exit Sub

ErrorTrap1:
  'エラー処理
  Resume Next

End Sub


エラー処理が2つある場合は、

Sub Macro1()

On Error GoTo ErrorTrap1
    '-エラーの発生するコード 1
On Error GoTo 0

Do
  On Error GoTo ErrorTrap2
    '-エラーの発生するコード 2
  On Error GoTo 0
Loop

Exit Sub

...続きを読む

QJavaMailでのメール送信

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サーバはユーザ認証と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(messa...続きを読む

Aベストアンサー

pingは通りますでしょうか?
コマンドプロンプトで
C:>ping [指定したホスト名]
とやってみてはどうでしょうか?

Qステレオミキサーの「realtek high definition a

ステレオミキサーの「realtek high definition audio 6.0.1.5490」より新しいバージョンのものはありますか?更新したいので。

Aベストアンサー

こんばんは。

現状ですと、[R2.47]の"6.0.1.6083"が最新のようです。
RealtekのOHPからダウンロードできます。
http://www.realtek.com.tw/downloads/downloadsCheck.aspx?Langid=4&PNid=24&PFid=24&Level=4&Conn=3&DownTypeID=3&GetDown=false

QJavaMailでエラーメールの通知

ヤマトです。こんにちは。

JavaMailに関し、質問があります。
JavaMailを作成したのですが、送信時に、
間違った[送信メールアドレス]を設定し送信した場合、
件名:Returned mail: see transcript for details
で送信者へ返信されます。
以上の現象は、普通のメーラーでも起きている現象と同じです。
しかし、以上のエラーメール通知を送信者以外には設定できないのでしょうか?

// 送信者の設定(送信者アドレス・送信者名)
mimeMessage.setFrom(new InternetAddress(FromMailAddress, FromMailName,"iso-2022-jp"));

現状は FromMailAddress のメールアドレスにエラーの通知が来てしまいます。

知ってる方がいらっしゃったら、教えて頂きたいのですが。
宜しくお願いします。

Aベストアンサー

>今なぜそのアドレスに返らないか

Error-to:ヘッダはRFC(メールを定義している文)に記述されていないため、
対応していない MTA(メールサーバ)が多いのです。

つまりMTAによってError-toにreturned mailが送られるかもしれないし
送られないかもしれないと。
メールっていうのはコネクションレス通信
(相手が受け取ったかどうか確認しない通信)
の為、確実にっていうのは不可能です。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング