社区
Java SE
帖子详情
javax.mail发送邮件自动附带附件ATT00002.jpg, ATT00003.html之类的附件
RessCris
2019-11-10 10:08:54
使用javax.mail模块发送正文邮件,并没有要附加附件的需求,但是发送文件会自动附加附件,请问是什么原因?
...全文
1064
2
打赏
收藏
javax.mail发送邮件自动附带附件ATT00002.jpg, ATT00003.html之类的附件
使用javax.mail模块发送正文邮件,并没有要附加附件的需求,但是发送文件会自动附加附件,请问是什么原因?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
RessCris
2019-11-11
打赏
举报
回复
已解决,是因为代码里重复生成了邮件对象导致
陈年_H
2021-07-27
举报
回复
@RessCris
手机邮箱打开多了一个ATT00002.bin,并且图片加载不出来,但是CP邮箱打开,一切正常。
高仿QQ界面
高仿QQ聊天 登录界面 import
java
.awt.BorderLayout; import
java
.awt.Color; import
java
.awt.event.ActionEvent; import
java
.awt.event.ActionListener; import
java
.io.File; import
java
x.swing.BorderFactory; import
java
x.swing.Box; import
java
x.swing.ImageIcon; import
java
x.swing.JButton; import
java
x.swing.JComboBox; import
java
x.swing.JFileChooser; import
java
x.swing.JFrame; import
java
x.swing.JLabel; import
java
x.swing.JScrollPane; import
java
x.swing.JTextField; import
java
x.swing.JTextPane; import
java
x.swing.UIManager; import
java
x.swing.text.BadLocationException; import
java
x.swing.text.Simple
Att
ributeSet; import
java
x.swing.text.StyleConstants; import
java
x.swing.text.StyledDocument; public class Test extends JFrame { private JScrollPane scrollPane = null; // 滚动 private JTextPane text = null; private Box box = null; // 放输入组件的容器 private JButton b_insert = null, b_remove = null, b_icon = null; // 插入按钮;清除按钮;插入图片按钮 private JTextField addText = null; // 文字输入框 // 字体名称;字号大小;文字样式;文字颜色;文字背景颜色 private JComboBox fontName = null, fontSize = null, fontStyle = null, fontColor = null, fontBackColor = null; private StyledDocument doc = null; // 非常重要插入文字样式就靠它了 public Test() { super("JTextPane Test"); try { // 使用Windows的界面风格 UIManager.setLookAndFeel ("com.sun.
java
.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { e.printStackTrace(); } text = new JTextPane(); text.setEditable(false); // 不可录入 doc = text.getStyledDocument(); // 获得JTextPane的Document scrollPane = new JScrollPane(text); addText = new JTextField(18); String[] str_name = { "宋体", "黑体", "Dialog", "Gulim" }; String[] str_Size = { "12", "14", "18", "22", "30", "40" }; String[] str_Style = { "常规", "斜体", "粗体", "粗斜体" }; String[] str_Color = { "黑色", "红色", "蓝色", "黄色", "绿色" }; String[] str_BackColor = { "无色", "灰色", "淡红", "淡蓝", "淡黄", "淡绿" }; fontName = new JComboBox(str_name); // 字体名称 fontSize = new JComboBox(str_Size); // 字号 fontStyle = new JComboBox(str_Style); // 样式 fontColor = new JComboBox(str_Color); // 颜色 fontBackColor = new JComboBox(str_BackColor); // 背景颜色 b_insert = new JButton("插入"); // 插入 b_remove = new JButton("清空"); // 清除 b_icon = new JButton("图片"); // 插入图片 b_insert.addActionListener(new ActionListener() { // 插入文字的事件 public void actionPerformed(ActionEvent e) { insert(getFont
Att
rib()); addText.setText(""); } }); b_remove.addActionListener(new ActionListener() { // 清除事件 public void actionPerformed(ActionEvent e) { text.setText(""); } }); b_icon.addActionListener(new ActionListener() { // 插入图片事件 public void actionPerformed(ActionEvent arg0) { JFileChooser f = new JFileChooser(); // 查找文件 f.showOpenDialog(null); insertIcon(f.getSelectedFile()); // 插入图片 } }); box = Box.createVerticalBox(); // 竖结构 Box box_1 = Box.createHorizontalBox(); // 横结构 Box box_2 = Box.createHorizontalBox(); // 横结构 box.add(box_1); box.add(Box.createVerticalStrut(8)); // 两行的间距 box.add(box_2); box.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); // 8个的边距 // 开始将所需组件加入容器 box_1.add(new JLabel("字体:")); // 加入标签 box_1.add(fontName); // 加入组件 box_1.add(Box.createHorizontalStrut(8)); // 间距 box_1.add(new JLabel("样式:")); box_1.add(fontStyle); box_1.add(Box.createHorizontalStrut(8)); box_1.add(new JLabel("字号:")); box_1.add(fontSize); box_1.add(Box.createHorizontalStrut(8)); box_1.add(new JLabel("颜色:")); box_1.add(fontColor); box_1.add(Box.createHorizontalStrut(8)); box_1.add(new JLabel("背景:")); box_1.add(fontBackColor); box_1.add(Box.createHorizontalStrut(8)); box_1.add(b_icon); box_2.add(addText); box_2.add(Box.createHorizontalStrut(8)); box_2.add(b_insert); box_2.add(Box.createHorizontalStrut(8)); box_2.add(b_remove); this.getRootPane().setDefaultButton(b_insert); // 默认回车按钮 this.getContentPane().add(scrollPane); this.getContentPane().add(box, BorderLayout.SOUTH); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(600, 400); this.setLocationRelativeTo(null); this.setVisible(true); addText.requestFocus(); } /** * 插入图片 * * @param icon */ private void insertIcon(File file) { text.setCaretPosition(doc.getLength()); // 设置插入位置 text.insertIcon(new ImageIcon(file.getPath())); // 插入图片 insert(new Font
Att
rib()); // 这样做可以换行 } /** * 将文本插入JTextPane * * @param
att
rib */ private void insert(Font
Att
rib
att
rib) { try { // 插入文本 doc.insertString(doc.getLength(),
att
rib.getText() + "\n",
att
rib.get
Att
rSet()); } catch (BadLocationException e) { e.printStackTrace(); } } /** * 获取所需要的文字设置 * * @return Font
Att
rib */ private Font
Att
rib getFont
Att
rib() { Font
Att
rib
att
= new Font
Att
rib();
att
.setText(addText.getText());
att
.setName((String) fontName.getSelectedItem());
att
.setSize(Integer.parseInt((String) fontSize.getSelectedItem())); String temp_style = (String) fontStyle.getSelectedItem(); if (temp_style.equals("常规")) {
att
.setStyle(Font
Att
rib.GENERAL); } else if (temp_style.equals("粗体")) {
att
.setStyle(Font
Att
rib.BOLD); } else if (temp_style.equals("斜体")) {
att
.setStyle(Font
Att
rib.ITALIC); } else if (temp_style.equals("粗斜体")) {
att
.setStyle(Font
Att
rib.BOLD_ITALIC); } String temp_color = (String) fontColor.getSelectedItem(); if (temp_color.equals("黑色")) {
att
.setColor(new Color(0, 0, 0)); } else if (temp_color.equals("红色")) {
att
.setColor(new Color(255, 0, 0)); } else if (temp_color.equals("蓝色")) {
att
.setColor(new Color(0, 0, 255)); } else if (temp_color.equals("黄色")) {
att
.setColor(new Color(255, 255, 0)); } else if (temp_color.equals("绿色")) {
att
.setColor(new Color(0, 255, 0)); } String temp_backColor = (String) fontBackColor.getSelectedItem(); if (!temp_backColor.equals("无色")) { if (temp_backColor.equals("灰色")) {
att
.setBackColor(new Color(200, 200, 200)); } else if (temp_backColor.equals("淡红")) {
att
.setBackColor(new Color(255, 200, 200)); } else if (temp_backColor.equals("淡蓝")) {
att
.setBackColor(new Color(200, 200, 255)); } else if (temp_backColor.equals("淡黄")) {
att
.setBackColor(new Color(255, 255, 200)); } else if (temp_backColor.equals("淡绿")) {
att
.setBackColor(new Color(200, 255, 200)); } } return
att
; } public static void main(String args[]) { new Test(); } /** * 字体的属性类 */ private class Font
Att
rib { public static final int GENERAL = 0; // 常规 public static final int BOLD = 1; // 粗体 public static final int ITALIC = 2; // 斜体 public static final int BOLD_ITALIC = 3; // 粗斜体 private Simple
Att
ributeSet
att
rSet = null; // 属性集 private String text = null, name = null; // 要输入的文本和字体名称 private int style = 0, size = 0; // 样式和字号 private Color color = null, backColor = null; // 文字颜色和背景颜色 /** * 一个空的构造(可当做换行使用) */ public Font
Att
rib() { } /** * 返回属性集 * * @return */ public Simple
Att
ributeSet get
Att
rSet() {
att
rSet = new Simple
Att
ributeSet(); if (name != null) StyleConstants.setFontFamily(
att
rSet, name); if (style == Font
Att
rib.GENERAL) { StyleConstants.setBold(
att
rSet, false); StyleConstants.setItalic(
att
rSet, false); } else if (style == Font
Att
rib.BOLD) { StyleConstants.setBold(
att
rSet, true); StyleConstants.setItalic(
att
rSet, false); } else if (style == Font
Att
rib.ITALIC) { StyleConstants.setBold(
att
rSet, false); StyleConstants.setItalic(
att
rSet, true); } else if (style == Font
Att
rib.BOLD_ITALIC) { StyleConstants.setBold(
att
rSet, true); StyleConstants.setItalic(
att
rSet, true); } StyleConstants.setFontSize(
att
rSet, size); if (color != null) StyleConstants.setForeground(
att
rSet, color); if (backColor != null) StyleConstants.setBackground(
att
rSet, backColor); return
att
rSet; } /** * 设置属性集 * * @param
att
rSet */ public void set
Att
rSet(Simple
Att
ributeSet
att
rSet) { this.
att
rSet =
att
rSet; } /* 后面的注释就不写了,一看就明白 */ public String getText() { return text; } public void setText(String text) { this.text = text; } public Color getColor() { return color; } public void setColor(Color color) { this.color = color; } public Color getBackColor() { return backColor; } public void setBackColor(Color backColor) { this.backColor = backColor; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getSize() { return size; } public void setSize(int size) { this.size = size; } public int getStyle() { return style; } public void setStyle(int style) { this.style = style; } } }
使用递归和dom遍历dom树形结构
使用递归和dom遍历dom树形结构 完整代码
【
Java
】解决
java
x.
mail
发送
附件
,
附件
名变为
att
000.dat
java
x.
mail
发送
附件
,
附件
名变为
att
000.dat
使用
java
x.
mail
发送邮件
Java
实现邮件发送 方式一:使用
java
x.
mail
包提供的方法 步骤一:引入依赖或者导入jar包 如果是用maven构建的项目,则在pom.xml中引入依赖 <dependency> <groupId>
java
x.
mail
</groupId> <artifactId>
mail
</artifactId> <versio...
Spring
Mail
踩坑记录
Spring
Mail
踩坑
附件
文件名变为***.bin 现象描述 通过spring
mail
发送带有
附件
的邮箱时,当发送给qq邮箱,
附件
文件名正常,当发送给163邮箱时,
附件
名变为
ATT
00002
.bin 解决方法 在应用启动的过程中,设置如下两个系统变量 @Configuration public class
Mail
Configuration { @PostConstruct private void init() { System.setProperty("
mail
.mime.splitlo
Java SE
62,628
社区成员
307,259
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章