java 不设收件人_显示Java邮件发件人的地址,而不是其姓名

我正在尝试通过Java

Mail应用程序将邮件发送给我的朋友。我能够成功完成此操作,但是邮箱中的收件人列显示了完整的电子邮件地址,而不是发送者的姓名。我尝试更改各种参数,但是邮箱仍然会显示完整的电子邮件地址,而不是发件人的姓名。

使用此方法发送消息:

public void send(String key){

String to=key;

String from="mygmailid";

String subject="wassp";

String text="Hello";

Properties props=new Properties();

props.put("mail.smtp.host", "smtp.gmail.com");

props.put("mail.smtp.user", "myname");

props.put("mail.smtp.socketFactory.port", "465");

props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");

props.put("mail.smtp.auth", "true");

props.put("mail.smtp.port", "465");

Session mailSession=Session.getDefaultInstance(props);

Message simpleMessage=new MimeMessage(mailSession);

InternetAddress fromAddress=null;

InternetAddress toAddress=null;

try{

fromAddress=new InternetAddress(from);

toAddress=new InternetAddress(to);

}

catch(AddressException e){

e.printStackTrace();

}

try{

simpleMessage.setFrom(fromAddress);

simpleMessage.setRecipient(RecipientType.TO,toAddress);

simpleMessage.setSubject(subject);

simpleMessage.setText(text);

transport.connect("smtp.gmail.com",465, "myid@gmail.com", "mygmailpassword");

transport.sendMessage(simpleMessage, simpleMessage.getAllRecipients());

transport.close();

}

catch(MessagingException e){

e.printStackTrace();

}

}

我将此方法称为:

public static void main(String[] args) {

MailSender mailer=new MailSender();

mailer.send("friendmail@gmail.com");

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要明确的是,退信邮件是指由于某些原因无法送达的邮件,通常会包含有关无法送达的原因以及邮件的一些基本信息,如发件人收件人邮件主题等。 在Java中,可以使用JavaMail API来处理邮件。要获取退信邮件中的收件人地址,可以按照以下步骤操作: 1. 使用JavaMail API创建一个Session对象,并设置相关属性,如邮件服务器地址、端口号、认证信息等。 2. 使用Session对象创建一个Store对象,并连接到邮件服务器。 3. 使用Store对象打开收件箱,获取退信邮件。 4. 遍历退信邮件,使用getMessage()方法获取每封邮件Message对象。 5. 使用Message对象的getRecipients()方法获取邮件收件人地址,该方法返回一个Address数组,可以通过遍历数组获取每个收件人地址。 以下是示例代码: ```java // 创建Session对象 Properties props = new Properties(); props.setProperty("mail.store.protocol", "imap"); props.setProperty("mail.imap.host", "邮件服务器地址"); props.setProperty("mail.imap.port", "邮件服务器端口号"); Session session = Session.getDefaultInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("用户名", "密码"); } }); // 创建Store对象并连接到邮件服务器 Store store = session.getStore(); store.connect(); // 打开收件箱并获取退信邮件 Folder folder = store.getFolder("INBOX"); folder.open(Folder.READ_ONLY); SearchTerm search = new SubjectTerm("Delivery Status Notification"); Message[] messages = folder.search(search); // 遍历退信邮件并获取收件人地址 for (Message message : messages) { Address[] recipients = message.getRecipients(Message.RecipientType.TO); if (recipients != null) { for (Address recipient : recipients) { String address = recipient.toString(); System.out.println(address); } } } // 关闭Folder和Store对象 folder.close(false); store.close(); ``` 需要注意的是,以上代码仅是示例,实际使用时可能需要根据具体情况进行修改。此外,为了保护用户隐私,通常情况下不应该在未经用户授权的情况下获取他人的邮件地址
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值