在java中以附件形式发送文件

2024-04-10

我有一个java代码,我必须发送一个依恋,可能是.doc、.db 或 .file。所以我使用以下代码,消息已成功发送,并且特定附件文件未发送且也未收到。

我的代码是:

import java.util.Date;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

public class SendEmail {

    private String from = "[email protected] /cdn-cgi/l/email-protection";
    private String to;
    private String subject;
    private String text;
    String filename = "hardWare_Dtls.file";
    String host = "smtp.gmail.com";

    public SendEmail(String from, String to, String subject, String text,String filename) {
        // System.out.println("From Adress inside constr"+from);
        this.from = from;
        this.to = to;
        this.subject = subject;
        this.text = text;
        this.filename=filename;
    }

    public void send() {

        Properties props = System.getProperties();
        System.out.println("Email Options SendEmail");
        props.put("mail.smtp.host", host);
        props.put("mail.smtp.user", from);
        props.put("mail.smtp.password", "123456");
        props.put("mail.smtp.port", "587"); // 587 is the port number of yahoo
                                            // mail
        props.put("mail.smtp.auth", "true");
        props.put("mail.smtp.starttls.enable", "true");

        Session mailSession = Session.getDefaultInstance(props, null);
        Message simpleMessage = new MimeMessage(mailSession);

        InternetAddress fromAddress = null;
        InternetAddress toAddress = null;
        try {
            fromAddress = new InternetAddress(from);
            toAddress = new InternetAddress(to);

        } catch (AddressException e) {
            // TODO Auto-generated catch block
            // e.printStackTrace();
            System.out.println("Address Exception" + e.getMessage());
        }

        try {
            System.out.println("From Address" + fromAddress);
            simpleMessage.setFrom(fromAddress);
            simpleMessage.setRecipient(RecipientType.TO, toAddress);
            System.out.println("To Address" + toAddress);
            simpleMessage.setSubject(subject);
            simpleMessage.setText(text);
            simpleMessage.setSentDate(new Date());

             MimeBodyPart attachmentPart = new MimeBodyPart();
                FileDataSource fileDataSource = new FileDataSource(filename) {
                    @Override
                    public String getContentType() {
                        return "application/octet-stream";
                    }
                };
                attachmentPart.setDataHandler(new DataHandler(fileDataSource));
                attachmentPart.setFileName(filename);

                Multipart multipart = new MimeMultipart();
              //  multipart.addBodyPart(messagePart);
                multipart.addBodyPart(attachmentPart);


            // simpleMessage.setText(attachment);

            Transport transport = mailSession.getTransport("smtps");
            transport.connect("smtp.gmail.com", "[email protected] /cdn-cgi/l/email-protection",
                    "123456");
            simpleMessage.saveChanges();
            transport.sendMessage(simpleMessage,
                    simpleMessage.getAllRecipients());
             Transport.send(simpleMessage);

            transport.close();
            // Transport.send(simpleMessage);
        } catch (MessagingException e) {
            // TODO Auto-generated catch block
            // e.printStackTrace();
            System.out.println("Messagine Exception" + e.getMessage());
        }
    }

}

在这段代码中我犯了什么错误。如果有任何其他使用 Javacode 发送带有附件的消息的代码,请发送给我。提前致谢。

我在我的主类中使用此代码:

            String from = "[email protected] /cdn-cgi/l/email-protection";
        String to = "[email protected] /cdn-cgi/l/email-protection";
        String subject = "Sample Text Message";
        String message = "Sample Msg with File attachment";
        String filename="hardWare_Dtls.file";

        SendEmail sendMail = new SendEmail(from, to, subject, message,filename);
        sendMail.send();

您几乎拥有所有部件,但您应该使用哑剧讯息 http://download.oracle.com/javaee/6/api/javax/mail/internet/MimeMessage.html(而不仅仅是消息),并将其内容设置为您的多部分。我认为您实际上尝试这样做,但您的代码无法编译,因此您注释掉了该行:

 // simpleMessage.setText(attachment);

而不是这样做:

((MimeMessage) simpleMessage).setContent(multipart);

并再次测试。它应该有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在java中以附件形式发送文件 的相关文章

  • 从 BroadcastReceiver 获取方法来更新 UI

    我正在尝试根据变量的变化更新用户界面BroadcastReceiver 因此 我需要调用一个扩展类的方法 以获取我提到的变量 BroadcastReceiver in MainActivity取决于但我无法以任何方式获得真正的返回值 扩展的
  • Java - 红、绿、蓝获取RGB

    通过致电getRGB int x int y with a BufferedImage对象 得到一个负数 如何将三个不同的值 红色 绿色和蓝色 转换为这个单个负数 使用颜色类 new Color r g b getRGB
  • 在此代码中,Runnable 未实例化。为什么?

    Runnable cannot instantiate public class Thread4 public static void main String args Thread t1 new Thread new Runnable R
  • 按位运算符简单地翻转整数中的所有位?

    我必须翻转整数的二进制表示形式中的所有位 鉴于 10101 输出应该是 01010 当与整数一起使用时 完成此操作的按位运算符是什么 例如 如果我正在编写类似的方法int flipBits int n 什么会进入身体 我只需要翻转数字中已经
  • 如果主引用指向 null,WeakReference 或 SoftReference 有何不同

    我正在读关于WeakReference https docs oracle com javase 10 docs api java lang ref WeakReference html and SoftReference https do
  • 如何停止使用扫描仪从标准输入读取多行?

    我正在做一个 JAVA 作业 应该处理多行输入 指令显示 输入是从标准输入读取的 给出了示例输入的示例 one 1 two 2 three 3 我不明白上面的示例输入 从标准输入读取 是什么意思 这是我编写的一个测试程序 它可以消除我的困惑
  • Apache Commons VFS - 无法解析文件

    VFS 方法无法处理此 URI jboss server temp dir local outgoing配置在jboss beans xml这是决心 C Download jboss eap 5 1 1 server default tmp
  • 限制 JPQL 中的结果数量

    如何限制从数据库检索结果的数量 select e from Entity e I need only 10 results for instance 您可以尝试像这样给出 10 个要显式获取的结果 entityManager createQ
  • 为什么我的 @OneToMany 属性出现主键违规?

    我有一个实体 Entity public class Student GeneratedValue strategy GenerationType AUTO Id private long id OneToMany private Set
  • Java时间转正常格式

    我有 Java 时间1380822000000 我想转换为我可以阅读的内容 import java util Date object Ws1 val a new Date 1380822000000 toString 导致异常 warnin
  • 如何从 Java 中“double”类型的值中删除小数值

    我正在调用一个名为 calculateStampDuty 的方法 它将返回 财产需缴纳的印花税金额 百分比计算有效 很好 并返回正确的值 15000 0 但是 我想显示该值 前端用户只是 15000 所以只想删除小数点和任何前面的值 此后
  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • EJB 中 @Stateless 相对于 @Singleton 的真正用例是什么

    如果我正确理解EJB Singleton实际上与普通Java中的Singleton相同 也是spring中的单例 gt 一个实例 每个调用同时通过同一个实例 Stateless 声明一个 bean 它可以 但不得 具有多个实例 但限制是一个
  • 如何加载图像文件到ImageView?

    我试图在从文件选择器中选择图像文件后立即显示该图像文件 文件选择器仅限于 png 和 jpg 文件 所选文件存储在文件类型的变量中 为此 我设置了一个 ImageView 我希望用这个新文件设置图像 唯一的问题是它的类型是文件而不是图像 如
  • 用于安装 R 软件包的备用编译器:clang:错误:不支持的选项“-fopenmp”

    我正在尝试在 OS X 10 11 6 上使用 R 版本 3 4 0 安装 rJava 包 install packages rJava type source 我收到以下错误 clang o libjri jnilib Rengine o
  • 应用程序中空指针异常[重复]

    这个问题在这里已经有答案了 我正在尝试在我的应用程序中实施应用程序内计费 我写了这段代码 public class Settings extends PreferenceFragment ServiceConnection mService
  • 从特定 JAR 文件读取资源(文件的重复路径)

    假设您有 jar1 和artifactId 动物园 jar2 和artifactId 动物 两个 jar 都有一个具有相同路径的资源文件 例如 animals animal txt 有什么方法可以从特定的 jar 中读取该文件吗 使用 ge
  • Javac 版本 1.7 无法为目标 1.7 构建

    我试图在 Linux Mint 系统上使用 Sun Java JDK 1 7 0 17 编译 Java 代码 但遇到了这个问题 javac version target 1 7 javac 1 7 0 17 javac invalid ta
  • 通过向上转换将 Java.sql.date 转换为 Java.util.date 安全吗?

    java sql date 扩展了 java util date 那么通过将 java sql date 转换为 java util date 是否可以在两者之间进行转换 或者有其他方法可以转换它们吗 您不一定需要强制转换 您可以将 SQL
  • Swing:创建可拖动组件...?

    我在网上搜索了可拖动 Swing 组件的示例 但我发现示例不完整或不起作用 我需要的是一个摇摆组件那可以是dragged通过鼠标 在另一个组件内 被拖拽的时候 应该已经 改变它的位置 而不仅仅是 跳 到目的地 我很欣赏无需非标准 API 即

随机推荐

  • 将会话放入 if 和 else 语句中

    我在将会话存储一些页面信息到变量中时遇到问题 继承人的代码
  • 如何从 Excel VBA for Mac 发出 HTTP GET

    我需要从 Excel for Mac 2011 向 Web 服务发出带有查询字符串的 HTTP Get 我已经看到了使用 QueryTables 的答案 如何使用 VBA 从 Excel 向服务器发送 HTTP POST 请求 https
  • ORDER BY 子句在视图、内联函数、派生表、子查询中无效

    我的存储过程是这样的 alter PROCEDURE dbo ParkingDeatailsReportnewstack startdate NVARCHAR 100 enddate NVARCHAR 100 AS BEGIN DECLAR
  • Cosmos DB Change Feed 的多个使用者

    我正在使用更改源处理器库 或 Azure Functions Cosmos DB 触发器 来订阅集合更新 如何为同一集合的 feed 设置多个独立 非竞争 消费者 一种方法是使用多个租赁集合 例如leases1 leases2等等 但这有点
  • 当输入多个单词作为输入时,使用 AND 条件过滤列表

    我正在尝试使用 jQuery 根据用户输入过滤列表 到目前为止 它工作正常 但如果用户输入多个单词 我希望能够使用相当于 AND 条件的方式充分过滤列表 例如 如果用户输入 丰田手册 则仍应显示以下两个元素 丰田 Echo 2001 手册
  • 相对于另一个居中视图的位置视图

    你好 SwiftUI 社区 我正在尝试做一些可能很容易做的事情 但我已经坚持了几个小时了 在列表中 我希望项目由以下组成 水平居中的文本 数字 号码左侧的文字 号码右侧的文字 我尝试了很多东西 对齐 对齐指南 GeometryReader
  • 单个 postgresql 查询中的文本和 jsonb 连接

    如何在 postgresql 中连接 jsonb 对象内的字符串 换句话说 我在同一查询中使用 JSONb 连接运算符以及文本连接运算符 但遇到了麻烦 或者 如果我应该执行一个完全不同的查询 我将不胜感激听到建议 目标是更新包含 jsonb
  • 对齐按钮背景图像

    我的 WinForms 应用程序中有一个按钮 我向其中添加了图像和文本 我将文本向右对齐 并希望将背景图像向左对齐 但发现这是不可能的 有什么办法可以做到这一点吗 我还尝试在按钮上仅设置图像 但无法在按钮属性中调整图像大小 有人可以帮我解决
  • Julia:生成唯一的随机整数数组

    我正在尝试创建 10 个唯一随机整数的元素数组 但是我无法创建具有唯一值的数组 Julia 中是否有类似 Python 的东西样本函数 https docs python org 2 library random html random s
  • 使用 SQLCeResultSet 更新/插入表

    我有一个定期更新的 SQL Compact Edition 数据库 通过 Web 服务 我写入数据库的部分花费的时间太长 我目前正在使用 Linq to Datasets 进行此操作 如这个问题 https stackoverflow co
  • keycloak 无效参数:反向代理后面的redirect_uri

    如何正确配置NGINX作为Keycloak前面的代理 作为文档询问和回答这个问题 因为我现在不得不重复这样做 并且在一段时间后忘记了细节 这是专门处理 Keycloak 位于反向代理后面的情况 例如nginx 和 NGINX 正在终止 SS
  • 如何在 springdoc 中注释 requestBody 的各个元素?

    我有一个 spring 启动 服务器 想要使用 springdoc 从注释生成 OpenAPI 规范 我有一个请求 请求正文中有两个参数 我希望第一个是必需的 第二个是可选的 RequestBody required true false
  • 如何重写控制台项目中的一行文本?由 小码哥发布于

    我正在开发一个 C 控制台项目 我想显示一个百分比 而不需要每次都创建一个新行 这样窗口就不会被数千行堵塞 有没有办法删除打印的最后一行或者说下次我输出一行时它应该替换当前行 您可以使用 r 回车符 将光标返回到行的开头 这适用于 Wind
  • 如何在 Python Cerberus 中将字符串强制转换为日期时间?

    我试图将字符串强制为日期 以便它可以验证日期数据类型 但它仍然返回False from cerberus import Validator from datetime import datetime v Validator v schema
  • 如果这是在 Objective C 中使用自定义字符串属性的正确方法,为什么我不能提取正确的数值?

    我正在修改一个早期项目 其中使用标签来识别 1 of 5 1 of 16 或 1 of 10UIButtons 我想根据我的理解用自定义属性替换标签这个答案 https stackoverflow com a 11594662 234859
  • 如何设置 Visual Studio 在 (Umbraco) 项目中创建 CSHTML 文件

    因此 我正在 Visual studio 中为我的 Umbraco 项目开发剃刀宏脚本 一切工作正常 但有两件事真的很烦人 如果我想创建一个新的 CSHTML 文件 最佳解决方案是复制现有文件 我没有完整的剃须刀智能感知 例如Html Ra
  • 谷歌 Colab 上的 RVL-CDIP 数据集

    我正在尝试使用以下命令在 google colab 上下载 RVL CDIP 数据集 wget load cookies tmp cookies txt https docs google com uc export download co
  • 无法导入caffe

    我执行了make pycaffe在 caffe 目录中并且运行良好 我也这样做了 gsamaras gsamaras A15 caffe python export PYTHONPATH PYTHONPATH home gsamaras c
  • 如何将 ShortDate 字符串格式与 Html.TextBoxFor 一起使用

    使用带有 MVC2 的实体框架 我有一系列日期文本框 我想以短日期格式显示模型中的数据 但我必须使用 Html TextBoxFor 才能使更新代码正常工作 尝试使用 HTML Textbox 数据永远不会保存到模型中 我已经尝试操作字符串
  • 在java中以附件形式发送文件

    我有一个java代码 我必须发送一个依恋 可能是 doc db 或 file 所以我使用以下代码 消息已成功发送 并且特定附件文件未发送且也未收到 我的代码是 import java util Date import java util P