java发送带附件的邮件
/**
* java发送带附件的邮件
* 周枫
* 2013.8.10
*/
package com.dsideal.Util;
import javax.mail.*;
import javax.mail.internet.*; import java.util.*;
import javax.activation.*; public class SendMail { private static String host = "smtp.qq.com"; // smtp服务器
private static String user = "95834073@qq.com"; // 用户名
private static String pwd = "******"; // 密码 /**
* <p>功能:</p>
* @author 周枫
* @date 2013-8-10
* @param "发送的邮箱", "接收的邮箱", "这个是收件箱列表标题名称", "发送邮件显示标题", "邮件正文", "附件名称","附件地址+名称"
* @return void
*/
public static void send(String from,String to,String personalName,String subject,String mail_body,String affixName,String affix_url) { Properties props = new Properties(); // 设置发送邮件的邮件服务器的属性(这里使用网易的smtp服务器)
props.put("mail.smtp.host", host);
// 需要经过授权,也就是有户名和密码的校验,这样才能通过验证(一定要有这一条)
props.put("mail.smtp.auth", "true"); // 用刚刚设置好的props对象构建一个session
Session session = Session.getDefaultInstance(props); // 用session为参数定义消息对象
MimeMessage message = new MimeMessage(session);
try {
Address address = new InternetAddress(from,personalName);
// 加载发件人地址
message.setFrom(address);
// 加载收件人地址
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
// 加载标题
message.setSubject(subject); // 向multipart对象中添加邮件的各个部分内容,包括文本内容和附件
Multipart multipart = new MimeMultipart(); // 设置邮件的文本内容
BodyPart contentPart = new MimeBodyPart();
contentPart.setText(mail_body);
multipart.addBodyPart(contentPart);
// 添加附件
BodyPart messageBodyPart = new MimeBodyPart();
//解决中文乱码问题
DataSource source = new FileDataSource(affix_url);
// 添加附件的内容
messageBodyPart.setDataHandler(new DataHandler(source));
// 添加附件的标题
// 这里很重要,不会变成乱码
messageBodyPart.setFileName(MimeUtility.encodeText(affixName)); multipart.addBodyPart(messageBodyPart); // 将multipart对象放到message中
message.setContent(multipart);
// 保存邮件
message.saveChanges();
// 发送邮件
Transport transport = session.getTransport("smtp");
// 连接服务器的邮箱
transport.connect(host, user, pwd);
// 把邮件发送出去
transport.sendMessage(message, message.getAllRecipients());
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
SendMail.send("95834073@qq.com", "95834073@qq.com", "列表名称", "html页面标题", "周枫java发送邮件", "附件.txt", "D:"+File.separator+"temp周枫.txt");
System.out.println("邮件成功发送完成!");
}
}
要用到的JAR包:http://files.cnblogs.com/littlehb/mail.rar (解压后放到Lib里)
如果linux服务器出现:
500 Error: bad syntax
这个错误
输入 hostname -i,查看hostname的值
请将 hostname -i 最终改为 127.0.0.1 就可以解决了
具体参考:http://blog.csdn.net/yakson/article/details/7917511
java发送带附件的邮件的更多相关文章
- [SpringBoot] - 发送带附件的邮件
<!--发送email依赖--> <dependency> <groupId>org.springframework.boot</groupId> &l ...
- C#发送带附件的邮件的代码
如下的代码是关于C#发送带附件的邮件的代码. MailMessage m = new MailMessage();m.Subject = "File attachment!";m. ...
- 利用Python+163邮箱授权码发送带附件的邮件
背景 前段时间写了个自动爬虫的脚本,定时在阿里云服务器上执行,会从某个网站上爬取链接保存到txt文本中,但是脚本不够完善,我需要爬虫完毕之后通过邮件把附件给我发送过来,之前写过一个<利用Pyth ...
- 使用JavaMail发送带附件的邮件
所需jar包 链接:http://pan.baidu.com/s/1dFo4cDz 密码:akap 工具类: package com.javamail.utils; import java.util. ...
- 接口测试基础——第2篇smtplib发送带附件的邮件
我先给大家补充一个用QQ发送纯文本电子邮件的代码,用QQ的朋友可以参考一下: # coding=utf-8 import smtplib from email.mime.text import MIM ...
- spring boot:发送带附件的邮件和html内容的邮件(以163.com邮箱为例/spring boot 2.3.2)
一,网站哪些情况下需要发送电子邮件? 作为一个电商网站,以下情况需要发邮件通知用户: 注册成功的信息 用邮箱接收验证码 找回密码时发链接 发送推广邮件 下单成功后的订单通知 给商户的对账单邮件 说明: ...
- Java发送带附件的QQ邮箱
由于腾讯公司给QQ邮箱增加了一个授权码的密码保护,导致之前网上很多代码都不能用,于是就自己敲了一份demo. 注意在密码那里可能需要授权码,具体设置:http://service.mail.qq.co ...
- 【Mail】JavaMail发送带附件的邮件(二)
上一篇讲了使用JavaMail发送普通邮件([Mail]JavaMail介绍及发送邮件(一)),本例讲发送复杂的邮件(带有附件的邮件) 生成一封复杂的邮件 新建一个JavaWeb的Maven工程,引入 ...
- python 发送带附件的邮件
特别注意的地方:filespart.add_header("Content-Disposition","attachment",filename=file_na ...
随机推荐
- HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值
在html中:name指的是用户名称,ID指的是用户注册是系统自动分配给用户的一个序列号. name是用来提交数据的,提供给表单用,可以重复: id则针对文档操作时候用,不能重复.如:document ...
- Yii 实现restful
首先做一下接口的 URL 规划,假设我们要面对的资源是 item ,现在我们暴露5个接口供其他应用调用,分别是: 对于所有 item 列表调用: GET /rest/item 对于某个 item 信息 ...
- Cookie的前后台应用
1.jquery.cookie.js的基本应用 这个是第三方js插件,可以更方便的设置和使用cookie $.cookie("UserName", "kingtiger& ...
- Delphi开发嵌入IE的OCX,调用页面上JavaScript的方法
利用Delphi的ActiveForm,可以很方便地开发出可以嵌入IE的ActiveX组件,无需知道太多幕后的COM知识.如何使得OCX可以很方便地调用Web上的JavaScript函数呢,研究了一个 ...
- [POJ 2019] Cornfields
Cornfields Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 5516 Accepted: 2714 Descri ...
- ☀【JS】检测属性
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8& ...
- jquery easyui treegrid使用小结
在实际应用中可能会碰到不同的需求,比如会根据每行不同的参数或属性设置来设置同列不同的editor类型,这时原有的例子就显的有点太过简单,不能实现我们的需求,现在应用我在项目中的操作为例,显示下实现同列 ...
- 【转】Xcode重构功能怎么用我全告诉你
原文网址:http://www.cocoachina.com/ios/20160127/15097.html 你会经常需要重构你的代码,让它有更好的结构,可读性或者提高可维护性.Xcode作为IDE其 ...
- linux文件属性详解
Linux 文件或目录的属性主要包括:文件或目录的节点.种类.权限模式.链接数量.所归属的用户和用户组.最近访问或修改的时间等内容.具体情况如下: 命令: ls -lih 输出: [root@loca ...
- [BILL WEI]一些经常用到的SQL函数
截取时间 --convert可以截取特点值 convert(varchar(10),getdate(),120) 截取2012-11-11 11:11:11 前10位,得到日期2012-11-11