我在写javamail代码的时候,想让收信人的名称显示在outlook中,但是没法设置,
msg.addRecipients(Message.RecipientType.TO,InternetAddress.parse(to,false));
其中第一个参数是发送类型,也就是主送,第二个是收信人的地址。
但是发信人的能设置,
Address address = new InternetAddress(mailFrom,sender,mailEncoding);
第一个是发信人的地址,第二个是显示在outlook中的名字,第三个是UTF—8哪位大侠知道还有什么地方可以设置啊?

解决方案 »

  1.   

    没太看懂什么意思package com.baifen.model;import org.apache.commons.mail.HtmlEmail;/**
     * @author Administrator
     * 
     */
    public class SendMail { // 邮件服务器
    private static String SmtpHostName = "smtp.gmail.com"; // 发件人邮箱
    private static String EmailFrom = "[email protected]"; // 发件人账号
    private static String UserName = "[email protected]"; // 发件人密码
    private static String UserPwd = "44Q550"; // smtp port
    private static int HostPort = 465; // 字符集
    private static String charset = "UTF-8"; // 标题
    private static String pwdTitle = "百纷网-密码找回邮件"; /**
     * 邮件正文类型(Text文本格式)
     */
    public static int text = 1; /**
     * 邮件正文类型(HTML格式)
     */
    public static int html = 2; /**
     * @param emailTo
     *            收信人邮箱
     * @param emailTitle
     *            邮件主题
     * @param emailBody
     *            邮件正文
     * @param bodyType
     *            正文类型(text,Html)
     * @return boolean
     */
    public boolean sendEmail(String emailTo, String username, String userpwd) { boolean flag = false; flag = sendPwd(emailTo, username, userpwd); return flag;
    } private boolean sendPwd(String emailTo, String userName, String pwd) { String msg = MailContents.getPwdHtmlOfEmail(userName, pwd);
    try {
    HtmlEmail email = new HtmlEmail();
    email.setHostName(SmtpHostName);
    email.setSSL(true);
    email.setSmtpPort(HostPort);
    email.addTo(emailTo);
    email.setFrom(EmailFrom);
    email.setAuthentication(UserName, UserPwd);
    email.setCharset(charset);
    email.setSubject(pwdTitle);
    email.setHtmlMsg(msg);
    email.send();
    System.out.println(msg);
    System.out.println("The SimpleEmail send sucessful!!!");
    return true;
    } catch (Exception e) {
    e.printStackTrace();
    return false;
    } }//  public static void main(String[] args) {
    //  new SendMail().sendEmail("[email protected]", "aaaa", "bbbbbb");
    //  }
    }
    我现在用的。
    可以参考下,用的comman-mail 很好用。可以google下
      

  2.   

    楼上不好意思啊,我没有表达清楚,可能我认为这个问题会有人遇到过,我写的代码,至于前面设置服务器的我就不写了,我只写
    附件内容的设置一部分:
    MimeMessage msg;
    String subject=“testテスト件名”;
    String text = ”本文honbunテスト”;
    String to = "[email protected]";
    String mailEncoding = "UTF-8"
    String textMimeType = "text/plain; charset=" + mailEncoding ;
    // 件名の設定
    msg.setSubject(subject == null ? "" : subject,mailEncoding);
    // 本文の設定
    mTextPart.setContent(text == null ? "" : text,textMimeType);
    mPart.addBodyPart(mTextPart);
    msg.setContent(mPart);
    // 受信者の設定(暂时只写一个收信者)
    msg.addRecipients(Message.RecipientType.TO,InternetAddress.parse(to,false));
    // 送信者のメールアドレスの設定
    address = new InternetAddress("[email protected]","発送者",mailEncoding);
    msg.setFrom(address);
    // 送信時刻の設定
    msg.setSentDate(new Date());以上就是除了附件之外的邮件内容,下面是在outlook中收到的邮件;其中送信者上显示【発送者】,但是收信者显示的是我定义的地址,也就是[email protected],比如我想让他显示[收信者],这个能实现吗?
      

  3.   

    不好意思,不会上传图片。
    我想只要用outlook的就应该能发现这个问题了。