117.info
人生若只如初见

java发送邮件带附件怎么实现

在Java中发送带附件的邮件可以使用JavaMail API来实现。以下是一个示例代码:

import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;

public class EmailSender {
    public static void main(String[] args) {
        // 发件人邮箱和密码
        final String username = "your_email@example.com";
        final String password = "your_password";

        // 发件人邮箱的 SMTP 服务器地址
        final String smtpHost = "smtp.example.com";

        // 收件人邮箱
        String toEmail = "recipient@example.com";

        // 创建邮件会话
        Properties props = new Properties();
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.host", smtpHost);
        props.put("mail.smtp.port", "587");
        props.put("mail.smtp.starttls.enable", "true");

        Session session = Session.getInstance(props, new Authenticator() {
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(username, password);
            }
        });

        try {
            // 创建邮件消息
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress(username));
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(toEmail));
            message.setSubject("JavaMail Attachment Example");

            // 创建邮件内容
            MimeMultipart multipart = new MimeMultipart();
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            messageBodyPart.setText("This is a sample email with attachment.");

            // 附件文件路径
            String attachmentPath = "/path/to/attachment.txt";
            // 创建附件
            MimeBodyPart attachmentBodyPart = new MimeBodyPart();
            DataSource source = new FileDataSource(attachmentPath);
            attachmentBodyPart.setDataHandler(new DataHandler(source));
            attachmentBodyPart.setFileName(source.getName());

            // 将内容和附件添加到邮件中
            multipart.addBodyPart(messageBodyPart);
            multipart.addBodyPart(attachmentBodyPart);
            message.setContent(multipart);

            // 发送邮件
            Transport.send(message);
            System.out.println("Email sent successfully.");
        } catch (MessagingException e) {
            e.printStackTrace();
        }
    }
}

在上述代码中,你需要替换以下内容:

  • your_email@example.com:发件人邮箱
  • your_password:发件人邮箱密码
  • smtp.example.com:发件人邮箱的 SMTP 服务器地址
  • recipient@example.com:收件人邮箱
  • /path/to/attachment.txt:附件的文件路径

确保你已经添加了javax.mailactivation依赖,以及正确配置了邮件服务器信息。

未经允许不得转载 » 本文链接:https://www.117.info/ask/feca7AzsLBQRQB1E.html

推荐文章

  • java中BigDecimal类型有哪些特点

    BigDecimal类型有以下几个特点: 它可以表示任意大小的有精度的浮点数,不会出现舍入误差。
    提供了丰富的数学运算方法,如加、减、乘、除等,可以进行高精度...

  • java字符串反转的方法是什么

    Java中字符串反转的方法有以下几种: 使用 StringBuilder 或 StringBuffer 的 reverse() 方法:这两个类都提供了 reverse() 方法,可以将字符串反转。 String st...

  • java字符串格式化成日期的方法是什么

    Java中可以使用SimpleDateFormat类来格式化字符串为日期。
    示例代码如下:
    import java.text.SimpleDateFormat;
    import java.util.Date; public ...

  • java中bigdecimal的用法是什么

    BigDecimal是Java中一个用于表示和操作任意精度的十进制数的类。它提供了精确的计算能力,避免了浮点数计算中的舍入误差。
    下面是BigDecimal的常用方法和用...

  • php怎么实现批量发送邮件

    要实现批量发送邮件,可以使用 PHP 的邮件发送库或者使用邮件服务提供商的 API。
    下面是使用 PHPMailer 库批量发送邮件的示例代码:
    require 'phpmail...

  • Java post上传附件怎么实现

    在Java中,你可以使用Apache HttpClient库来实现POST上传附件。以下是一个示例代码:
    import org.apache.http.HttpEntity;
    import org.apache.http.Ht...

  • C++图形化界面如何做

    要在C++中实现图形化界面,可以使用一些库或框架来帮助完成。以下是几种常用的方法: 使用Qt:Qt是一个跨平台的C++图形用户界面开发框架,它提供了丰富的图形控件...

  • ubuntu如何安装vim编辑器

    要在Ubuntu上安装Vim编辑器,请按照以下步骤进行操作: 打开终端,可以使用快捷键Ctrl+Alt+T。 在终端中输入以下命令并按Enter键进行更新软件包列表: sudo apt ...