JavaMailでメールアドレスに人物名が入るようにする方法

このQ&Aのポイント
  • 現在JSPで作成しているメールアプリケーションで、メール送信時に差出人の名前を表示させる方法について知りたい。
  • 現在のコードでは差出人のメールアドレスのみが表示されているため、差出人の名前も表示させたい。
  • 詳しい方法を教えていただけると幸いです。
回答を見る
  • ベストアンサー

JavaMailでメールアドレスに人物名が入るようにしたい

 urizakaです。  さて、現在JSPでメールを指定した相手に送るというアプリケーションを作って いるのですが、メールが送られた相手のメールソフト(主にOutLookが対象です) の差出人の欄に、メールアドレスだけではなく差出人の名前が出るようにしたい のですが、どなたか方法をご存知の方いらっしゃいますか?  現在は、  String msg_from = request.getParameter("mail"); // JSPからメールアドレスを取得。  msg.setFrom(new InternetAddress(msg_from)); //メールアドレスをセット  となっており、相手の差出人欄には差出人のメールアドレスのみが表示されて いる状態です。   どうぞ、宜しくお願いします。

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

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

  • ベストアンサー
  • KaZtoYou
  • ベストアンサー率73% (11/15)
回答No.1

>msg.setFrom(new InternetAddress(msg_from)); この一文を以下のように書き変えてみてください。 msg.setFrom(new InternetAddress(msg_from,"お名前","iso-2022-jp")); JavaMail1.2APIドキュメントのInternetAddressコンストラクタ に書いてありました。深く知りたい場合はRFC822も読むべきなの かもしれませんね。

参考URL:
http://java.sun.com/products/javamail/1.2/docs/javadocs/javax/mail/internet/InternetAddress.html
urizaka
質問者

お礼

ありがとうございます。 おかげでできました。

関連するQ&A

  • [JavaMail]Javamailでの差出人の自動取得について

    [JavaMail]Javamailでの差出人の自動取得について こんにちは。質問させていただきます。 Android環境 + javamailでメーラーアプリを作成しています。 メール送信時にFrom(差出人)アドレスをサーバから自動取得したいと 考えているのですが、どうもうまくいきません。 Javamailのリファレンスには、 InternetAddress#getLocalAddress(Session); で、取得できると記載がありますが、Nullが返ってきます。 他の手段でメールサーバから差出人(ユーザ)のアドレスを取得する方法はないでしょうか? ご存知の方がおられましたら教えていただければと思います。 メールサーバは現在「mopera.net」のみを想定しております。 よろしくお願い致します。

  • JSPからのパラメータチェック

    いつもお世話になっております。 開発環境はeclipse SDK。OSはWInXP。 現在JSPより送られてきた値のチェックを行うプログラミングをしているのですがうまくいきません。 JSP側で"すべて"という文字列を送信してサーブレットでその文字列を受け取り、if文で判定を行おうとしています。 デバッグでみるとサーブレットにきちんと"すべて”の文字が送られてきています。 サーブレット内のif文をどうしてもとおりません。 問題のif文は以下のような感じです。 String msg = request.getParameter("msg"); if(msg == "すべて") msg = "すべてが入力されました"; request.setAttribute("msg",msg); JSPから送られている"すべて"とデバッグで調べても同じに見えます。 型がおかしいのかと思い、ためしに以下のようなことをしてみました。 String msg = request.getParameter("msg"); String chekmsg = "すべて"; if(msg == chekmsg) msg ="すべてが入力されました"; request.setAttribute("msg",msg); としても結果が同じです。 残る可能性は、デバッグモードで見ると、msgとchekmsgのhashの数字が違うところぐらいです。 お分かりなる方がいましたらよろしくお願いいたします。

    • ベストアンサー
    • Java
  • JavaMailでエラーメールの通知

    ヤマトです。こんにちは。 JavaMailに関し、質問があります。 JavaMailを作成したのですが、送信時に、 間違った[送信メールアドレス]を設定し送信した場合、 件名:Returned mail: see transcript for details で送信者へ返信されます。 以上の現象は、普通のメーラーでも起きている現象と同じです。 しかし、以上のエラーメール通知を送信者以外には設定できないのでしょうか? // 送信者の設定(送信者アドレス・送信者名) mimeMessage.setFrom(new InternetAddress(FromMailAddress, FromMailName,"iso-2022-jp")); 現状は FromMailAddress のメールアドレスにエラーの通知が来てしまいます。 知ってる方がいらっしゃったら、教えて頂きたいのですが。 宜しくお願いします。

    • ベストアンサー
    • Java
  • JAVA NoClassDefFoundError

    javadriveHPのサンプルスクリプトにてメール配信プログラムを動かそうとしています。 環境構築は完了し、サンプルスクリプトも動作確認できました。 そこで、そのスクリプトをサーブレット化しようとして、パッケージ名を付けたところからNoClassDefFoundError(どうやらSessionのようです)が発生しています。 いろいろサイトも調べて解説も読みましたが、どこを直せばよいか検討がつかなかったので質問させていただきました。 下記がソースになりますが、パッケージ名を付ける前は正常に動作していました。 頭悪い私を助けてください;; よろしくお願いします! package Tool; import java.util.*; import java.io.*; import javax.mail.*; import javax.mail.internet.*; import javax.activation.*; public class Sendmail { public String mailHost = ""; public String mailTo = ""; public String mailFrom = ""; public String mailSubject = ""; public String mailMessage = ""; public Sendmail(){} public void setHost (String h) { mailHost = h; } public void setTo (String t) { mailTo = t; } public void setFrom (String f) { mailFrom = f; } public void setSubject (String s) { mailSubject = s; } public void setMessage (String m) { mailMessage = m; } public void mailSend() { Properties props = new Properties(); props.put("mail.smtp.host", mailHost); props.put("mail.host", mailHost); props.put("mail.from", mailFrom); Session s = Session.getInstance(props); try { MimeMessage msg = new MimeMessage(s); msg.setFrom(new InternetAddress(mailFrom)); InternetAddress[] address = InternetAddress.parse(mailTo); msg.setRecipients(Message.RecipientType.TO, address); msg.setSubject(mailSubject, "ISO-2022-JP"); msg.setSentDate(new Date()); msg.setText(mailMessage, "ISO-2022-JP"); Transport.send(msg); } catch(MessagingException mex) { System.out.println("--Exception handling in msgsendsample.java"); mex.printStackTrace(); } } /* public static void main(String args[]) { Sendmail sm = new Sendmail(); sm.setHost("XX.XX.XX.XX"); sm.setTo("XXXX@XXXX"); sm.setFrom("XXX@XXX"); sm.setSubject("ああああ"); sm.setMessage("いいいいい"); sm.mailSend(); } */ }

    • ベストアンサー
    • Java
  • ヤフーのメールアドレス・・メールアドレスを変更せずFromの部分を削除する方法

    お願いします! 現在、ヤフーのメールアドレスを使用しているのですが、登録の際、Fromの場面で、バカ正直に自分の名前を入れて登録してしまいました。 つまり、相手にメールを送った場合、相手のメールのFromの欄には、自分の名前が入った状態で、送ってしまっています。 メールアドレスを変更せずに、Fromの欄だけ削除する方法ってありますでしょうか? よろしくお願いします!

  • 迷惑メール 差出人が自分のメールアドレスになっています。

    最近になり差出人が自分のメールアドレスになってるメールアドレスが届くようになりました。差出人の欄も宛先の欄も私のメールアドレスになっています。差出人が私のメールアドレスの為、迷惑メール設定もできず困っています。どなたか良い方法をご存知の方がいましたらご教示お願いいたします。

  • DBへ入出力する文字が文字化けしてしまいます。

    Urizakaと申します。 さて、現在Win2000+JBuilder4.0を使い、WinNTにあるDB(SQL-Server)へ とデータを出入力するというJSPの開発をしているのですが、この時になぜか DBへ入出力する日本語のデータが文字化けしてしまいます。 doGet、doPost部分で、入出力したデータに対して  (new String(request.getParameter("×××").getBytes("8859_1")); という雑誌に載っていた処理を加えてみたのですが駄目でした。 すみませんが、どなたか文字化けを防止する方法をご存知でしたら教えて ください。宜しくお願いします。

    • ベストアンサー
    • Java
  • 削除したメールアドレスを復旧したい

    Windows7 WindowsLiveメール メールに(1)本アドレスと(2)複数メールアドレス(NTTぷらら から)と2つのアドレスを差出人に登録して利用していました。 (2)の方を削除した後、メールの差出人欄にそのまま残っているので、アカウントから、(2)の削除を行いました。 ・・・本当は、(2)の差出人欄から外したかったのですが、上手くできませんでした。 その後、(2)の方のデーターが必要となりましたが、復元方法を教えてくださいませんでしょうか。 あまり、詳しくないのでできれば解り易い方法があれば助かります。 よろしくお願いいたします。

  • javascriptにてお問い合わせフォームを作っ

    javascriptにてお問い合わせフォームを作っていて、 最後の送信ボタンを押すと送信されるはずが、エラーとなってしまいます。 素人で何もわかりません。 すいませんが、ご教授ください。 エラー内容 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 担当者への送信に失敗しました。 エラー内容:javax.mail.internet.AddressException: Missing '<' in string ``"" <>'' at position 31 本文内容 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub //受け取るデータの文字コードをUTF-8にセットする request.setCharacterEncoding("UTF-8"); //パラメーター”title”の値を取り出し、変数titleに代入 String title = request.getParameter("title"); //パラメーター”message”の値を取り出し、変数messageに代入 String message = request.getParameter("message"); //出力先のコンテントタイプをセットする response.setContentType("text/html; charset=UTF-8"); //出力先を取り出し、変数outに代入する PrintWriter out = response.getWriter(); //メールの送信 try { //プロバティの作成 Properties property = new Properties(); //SMTPサーバーのセット property.put("mail.smtp.host","<サーバー名>"); //メールセッションを確率 Session session = Session.getDefaultInstance(property,null); //送信メッセージを生成 MimeMessage mimeMessage =new MimeMessage(session); //Toアドレスのセット InternetAddress toAddress = new InternetAddress("メールアドレス>","<名前>");mimeMessage.setRecipient(Message.RecipientType.TO,toAddress);//Fromアドレスのセット InternetAddress fromAddress = new InternetAddress("メールアドレス>","<名前>");mimeMessage.setFrom(fromAddress); //タイトル(件名)のセット mimeMessage.setSubject(title,"ISO-2022-JP"); //本文のセット mimeMessage.setText(message,"ISO-2022-JP"); //メールの送信 Transport.send(mimeMessage); //送信OK out.println("<html><body>"); out.println("■お問い合わせ内容を担当者へ送信しました。"); out.println("</body></html>"); } catch (Exception e) { //送信エラー out.println("<html><body>"); out.println("担当者への送信に失敗しました。"); out.println("<br>エラー内容:"+e); out.println("</body></html>"); } //出力する out.close(); } }

  • 携帯電話のように、登録したアドレスとのメールは登録名で表示されるメールソフト

    こんにちは。 現在、outlook (expressでないほう)を使っていて、困っています。 アウトルックでは「差出人」の表示は、メールをくれた人が設定した通りに表記されてしまいますよね。 そのせいで、実際には同じ人が異なるメールアドレスからメールをくれた場合、二つのアドレスでの「差出人」設定が違うと、「別々の人からのメール」のように扱われてしまいます。 また、「差出人」を設定していない人からのメールの場合、「差出人」はメールアドレスのままになりますが、この場合も例えば相手のメールアドレスが変わった場合、別々の人からのメールのように扱われてしまいます。 こういったことを防ぐためには、携帯電話のように、「(相手の差出人設定は何であれ)自分のメモリに同一人物として登録しているアドレスからのメールは、同一人物からのものとして扱う」といったメールソフトがあればいいのかな、と思います。 メールソフトの希望としては、「アウトルックのメールデータ(アドレス帳でなく)を取り込める」といった機能があるものがよいのですが、これはあくまで希望ですので、インポートできなくても、何かご存知のことがございましたら教えていただきたいです。 また、「アウトルックでもこう設定したらできるよ」というご回答も嬉しいです。 うまく説明できてないかもしれませんが、どうぞよろしくお願いします。

専門家に質問してみよう