要在Android Studio中添加Java邮件附件功能,你可以按照以下步骤进行操作:
build.gradle
文件中,添加JavaMail库的依赖项。在dependencies
部分,添加以下代码:implementation 'com.sun.mail:android-activation:1.6.0'
implementation 'com.sun.mail:android-mail:1.6.0'
implementation 'javax.mail:javax.mail-api:1.6.2'
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class EmailSender {
public static void sendEmailWithAttachment(String recipientEmail, String subject, String messageContent, String attachmentPath) {
// 配置SMTP服务器
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host", "smtp.gmail.com"); // 根据需要更改为您自己的SMTP服务器
props.put("mail.smtp.port", "587"); // 根据需要更改为您自己的SMTP端口
// 创建会话
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("your-email@gmail.com", "your-password"); // 根据需要更改为您自己的电子邮件和密码
}
});
try {
// 创建消息
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("your-email@gmail.com")); // 根据需要更改为您自己的电子邮件
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipientEmail));
message.setSubject(subject);
// 创建消息正文
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText(messageContent);
// 创建多部分
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
// 创建附件
if (attachmentPath != null && !attachmentPath.isEmpty()) {
BodyPart attachmentBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(attachmentPath);
attachmentBodyPart.setDataHandler(new DataHandler(source));
attachmentBodyPart.setFileName(attachmentPath);
multipart.addBodyPart(attachmentBodyPart);
}
// 设置多部分的内容
message.setContent(multipart);
// 发送消息
Transport.send(message);
System.out.println("邮件已发送。");
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
EmailSender.sendEmailWithAttachment
方法。例如:EmailSender.sendEmailWithAttachment("recipient-email@example.com", "测试邮件", "这是一封测试邮件。", "/path/to/attachment/file.pdf");
确保将recipient-email@example.com
替换为实际的收件人电子邮件地址,将测试邮件
替换为邮件主题,将这是一封测试邮件。
替换为邮件内容,并将/path/to/attachment/file.pdf
替换为要附加的文件的路径。
通过这些步骤,你就可以在Android Studio中使用Java代码发送带有附件的电子邮件了。