Java 邮件发件人的地址显示而不是他的名字

作者:编程家 分类: java 时间:2025-12-11

在Java中,要显示邮件发件人的地址而不是他的名字,可以使用Java Mail API来实现。Java Mail API提供了一组用于发送和接收电子邮件的类和方法,可以方便地处理邮件相关的操作。

使用Java Mail API显示邮件发件人的地址

首先,我们需要引入Java Mail API的相关库。可以从Java Mail官方网站上下载并导入相关的jar文件。然后,我们可以通过以下步骤来显示邮件发件人的地址:

1. 创建一个Properties对象,并设置邮件服务器的相关属性。这些属性包括邮件服务器的主机名和端口号,以及是否需要身份验证等。例如:

java

Properties properties = new Properties();

properties.put("mail.smtp.host", "smtp.example.com");

properties.put("mail.smtp.port", "587");

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

2. 创建一个Session对象,用于与邮件服务器进行通信。可以使用Session.getDefaultInstance()方法来获取默认的会话实例,也可以通过传递Properties对象来创建一个新的会话实例。例如:

java

Session session = Session.getDefaultInstance(properties);

3. 创建一个Message对象,用于表示要发送的邮件。可以使用MimeMessage类来创建一个MimeMessage对象。例如:

java

Message message = new MimeMessage(session);

4. 设置邮件的发件人地址。可以使用Message.setFrom()方法来设置发件人的地址。例如:

java

message.setFrom(new InternetAddress("sender@example.com"));

5. 其他邮件相关的设置。可以设置邮件的主题、收件人地址、正文内容等。例如:

java

message.setSubject("Hello");

message.setRecipient(Message.RecipientType.TO, new InternetAddress("recipient@example.com"));

message.setText("This is a test email.");

6. 发送邮件。可以使用Transport类来发送邮件。例如:

java

Transport.send(message);

通过以上步骤,我们可以使用Java Mail API来显示邮件发件人的地址。这样,我们可以确保在收到邮件时,可以直接看到发件人的地址而不是他的名字。

示例代码:

java

import java.util.Properties;

import javax.mail.*;

import javax.mail.internet.*;

public class EmailSender {

public static void main(String[] args) {

// 设置邮件服务器的属性

Properties properties = new Properties();

properties.put("mail.smtp.host", "smtp.example.com");

properties.put("mail.smtp.port", "587");

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

// 创建与邮件服务器的会话

Session session = Session.getDefaultInstance(properties);

try {

// 创建邮件对象

Message message = new MimeMessage(session);

// 设置发件人地址

message.setFrom(new InternetAddress("sender@example.com"));

// 设置收件人地址

message.setRecipient(Message.RecipientType.TO, new InternetAddress("recipient@example.com"));

// 设置邮件主题

message.setSubject("Hello");

// 设置邮件内容

message.setText("This is a test email.");

// 发送邮件

Transport.send(message);

System.out.println("Email sent successfully.");

} catch (MessagingException e) {

e.printStackTrace();

System.out.println("Failed to send email.");

}

}

}

通过运行以上示例代码,我们可以发送一封包含指定内容的测试邮件。在收到邮件时,我们可以直接看到发件人的地址而不是他的名字。这对于识别邮件的来源非常有用。