質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

10440閲覧

localhostを使って、メールを送信できない

退会済みユーザー

退会済みユーザー

総合スコア0

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

JSP

JSP(Java Server Pages)とは、ウェブアプリケーションの表示レイヤーに使われるサーバーサイドの技術のことです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/10/20 08:20

編集2015/10/20 08:51

新サーバーへ、CentOS release 6.7 (Final)をインストールし(apatch、tomcat、MySQL、その他、なども)、
localhostを使って、メールを送信しようとしたところ、
下記のエラーがでます。

原因は、何でしょうか?

catalina.outのログ
at com.sun.mail.smtp.SMTPTransport.rcptTo(SMTPTransport.java:1873)
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:1120)
at javax.mail.Transport.send0(Transport.java:195)
at javax.mail.Transport.send(Transport.java:124)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:186)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 560 4.3.1 mio@softwere.jp... Relaying denied. Proper authentication required.

そこで、ネットから拾ってきたソースの下記でやっても同じエラーがでます。(JAVAのソースをJSPへ変えた)
====================================
<%@ page language='java' contentType="application/json;" session="true" pageEncoding="UTF-8"%>
<%@ page import="java.util.Properties"%>
<%@ page import="java.util.Date"%>
<%@ page import="javax.mail.Session"%>
<%@ page import="javax.mail.Transport"%>
<%@ page import="javax.mail.MessagingException"%>
<%@ page import="javax.mail.internet.InternetAddress"%>
<%@ page import="javax.mail.internet.MimeMessage"%>
<%@ page import="javax.mail.internet.AddressException"%>

<%
Properties properties=new Properties();
properties.setProperty("mail.smtp.host", "localhost");
Session session2=Session.getDefaultInstance(properties);
String[] args = {"mio@softwere.jp"};
MimeMessage mimeMessage=new MimeMessage(session2);
// InternetAddressの作成
InternetAddress[] toAddress=new InternetAddress[args.length];
try{
for(int i=0; i<args.length; i++){
toAddress[i]=new InternetAddress(args[i]);
}
}catch(AddressException e){
e.printStackTrace();
// return;
}

try{ // 宛先の設定 mimeMessage.setRecipients(MimeMessage.RecipientType.TO, "mio@softwere.jp"); // 送信元の設定 mimeMessage.setFrom(new InternetAddress("from@test.com")); // サブジェクトの設定 mimeMessage.setSubject("The time is ..."); // 本文の設定 mimeMessage.setText(new Date().toString()); // 設定の保存 mimeMessage.saveChanges(); // メールの送信 Transport.send(mimeMessage); }catch(MessagingException e){ e.printStackTrace();

// return;
}
%>
====================================

/usr/local/apache-tomcat/webapps/ROOT/WEB-INF/classes/jp/co/mindc/util/config/config.properties の中の一部。

[order.properties]
SMTPHOST=localhost

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

私の質問が的をえていないので、再度質問をあげなおします。※不正ですが、お許しください。

投稿2015/10/21 00:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

"Relaying denied. Proper authentication required." とのことですので、localhost の SMTPサーバーがリレーを許可していないようです。
メールログ(/var/log/maillog)を見れば、詳細がわかると思います。

localhost の SMTPサーバーは Postfix でしょうか?
認証を必須とするような設定をしていますでしょうか。

投稿2015/10/20 08:42

TaichiYanagiya

総合スコア12141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/10/20 08:49

SMTPサーバーは、CentOSを入れた時に入ったままのメールです。localhostサーバーとでもいいましょうか?(受信はできません) 認証の設定方法がわからないのです。
TaichiYanagiya

2015/10/20 08:53

CentOS のバージョンは 6 か 7 か、あるいはもっと古いものでしょうか? デフォルトのままであれば localhost からの接続については認証なしでリレー許可されていると思います。 メールログ(/var/log/maillog)はどうなっていますか?
退会済みユーザー

退会済みユーザー

2015/10/20 09:03

# echo miodesu | mail mio@softwere.jp は、遅れました。今、/var/log/maillogを見てみます。
退会済みユーザー

退会済みユーザー

2015/10/20 09:11

/var/log/maillogには、今日の日付のログがありませんでした。送信に成功していないせい?
退会済みユーザー

退会済みユーザー

2015/10/20 09:14

見るサーバーを間違えていました。再度、見てみます。
退会済みユーザー

退会済みユーザー

2015/10/20 09:18

下記が表示されました。 Oct 20 18:14:05 api postfix/postsuper[20373]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol Oct 20 18:14:05 api postfix/postsuper[20373]: warning: inet_protocols: configuring for IPv4 support only Oct 20 18:14:05 api postfix/postlog[20410]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocol Oct 20 18:14:05 api postfix/postlog[20410]: warning: inet_protocols: configuring for IPv4 support only Oct 20 18:14:05 api postfix/postfix-script[20410]: starting the Postfix mail systemOct 20 18:14:05 api postfix/master[20413]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocolOct 20 18:14:05 api postfix/master[20413]: warning: inet_protocols: configuring for IPv4 support onlyOct 20 18:14:05 api postfix/master[20413]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocolOct 20 18:14:05 api postfix/master[20413]: warning: inet_protocols: configuring for IPv4 support onlyOct 20 18:14:05 api postfix/master[20413]: daemon started -- version 2.6.6, configuration /etc/postfixOct 20 18:14:05 api postfix/qmgr[20420]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocolOct 20 18:14:05 api postfix/pickup[20419]: warning: inet_protocols: IPv6 support is disabled: Address family not supported by protocolOct 20 18:14:05 api postfix/qmgr[20420]: warning: inet_protocols: configuring for IPv4 support onlyOct 20 18:14:05 api postfix/pickup[20419]: warning: inet_protocols: configuring for IPv4 support only
退会済みユーザー

退会済みユーザー

2015/10/20 09:20

/etc/postfix のファイル名がでているので、この中の設定をしないといけないのかもしれないですね。
TaichiYanagiya

2015/10/20 09:23

postfix-2.6.6 ということは CentOS 6 ですね。 肝心の、リレーを拒否したログが出ていませんが、過去のログファイル(/var/log/maillog-年月日)を調べるか、もう一度、メール送信テストをしてみるとどうでしょうか。
退会済みユーザー

退会済みユーザー

2015/10/20 09:32

3度メール送信テストをしましたが、(/var/log/maillog-年月日) の今日の日付もないですし、ただのmaillogの更新時間も過去の時間になって、更新してもログがでないじょうたいです。
TaichiYanagiya

2015/10/20 09:38

「560 4.3.1 ...」は SMTPサーバーからの応答だと思うのですが、localhost の postfix ではなく、違う SMTPサーバーに接続していませんか?
退会済みユーザー

退会済みユーザー

2015/10/20 09:47

ご回答ありがとうございます。 その辺りも含めて、再度、各所の設定を確認してみます。
退会済みユーザー

退会済みユーザー

2015/10/20 10:05

sendmailのフォルダがないので、sendmailがインストールされていないようです。CentOSをインストールすれば、勝手に入ると思っていたのです。 今から、ダウンロードして、インストールします。
TaichiYanagiya

2015/10/20 10:09

postfix が入っていれば、sendmail は必要ないです。すでに、mail コマンドで送信できていますし。 Java プログラムの方に原因があると思われます。本当に "localhost" に接続しているのか、"localhost" = "127.0.0.1" か(/etc/hosts で変更していないですよね)
退会済みユーザー

退会済みユーザー

2015/10/20 12:42

もう、sendmailのインストールでごちゃごちゃになり(sendmailのインストールで、できるはずのフォルダやファイルができていなかったり)で、結局、コマンドラインからも、メールが遅れなくなりました。 sendmailをインストールしたのをアンインストールしたい...けど、方法がわからない。
退会済みユーザー

退会済みユーザー

2015/10/20 12:48

「"localhost" = "127.0.0.1" か(/etc/hosts で変更していないですよね) 」はい、変更していないです。
退会済みユーザー

退会済みユーザー

2015/10/20 12:50

コマンドラインからのメール僧院が、できるように復活しました。
guest

0

Caused by: com.sun.mail.smtp.SMTPAddressFailedException: 560 4.3.1 mio@softwere.jp... Relayng denied. Proper authentication required.

リレーが拒否された。認証が求められています。

SMTPの認証をするコードを書きましょう。通常のメーラーの設定と同じことなので、SMTPのサーバー情報とID、パスワードを設定して送ればOKですね。

投稿2015/10/20 08:37

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/10/20 08:48

ご回答ありがとうございます。 リレーが拒否ですか... >SMTPの認証をするコードを書きましょう。通常のメーラーの設定と同じことなので、SMTPのサーバー情報とID、パスワードを設定して送ればOKですね。 申し訳ありません、この具体的な方法がわかりません。SMTPのサーバーは、ローカルサーバーなので、ローカルサーバーのターミナルで入るときのアカウントなどをどこかに指定するのでしょうか?
退会済みユーザー

退会済みユーザー

2015/10/21 00:33

承知しました。 ネットで、IDとパスワードを設定するコードの書き方をを調べます。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問