导航:首页 > 编程语言 > javamail发送附件

javamail发送附件

发布时间:2021-10-25 17:35:03

1. 用java来发送带附件的邮件

用java来发送带附件的邮件要翻译的。

2. javamail发送带Excel附件邮件

我这里有个可用的。也来自网络,测了下可以。。

3. javaMail实现邮件转发,同时转发的邮件应该包含附件,怎么实现

看去吧
http://www.blogjava.net/stevenjohn/archive/2011/10/18/361492.html
http://www.blogjava.net/action/archive/2006/04/24/42822.html

4. Javamail发送附件,为什么将附件内容直接显示在邮件正文中

DataSource source = new FileDataSource(new File("E:\\path.txt"));
body.setDataHandler(new DataHandler(source));
你好,复在后面在加上附制件文件名的设置:
body.setFileName(MimeUtility.encodeText(文件名));//设置附件文件名
例如:
body.setFileName(MimeUtility.encodeText(new File("E:\\path.txt").getName()));

ps:邮箱会根据附件的MIME类型自动打开附件,设置一个文件名可以将附件流控制成文件,不让邮箱自动打开

5. java sendmail 怎么发送邮件带超大附件,求大神帮帮

和服务器有关的,服务器如果拒绝就没法了 ,,,,还和连接时间长短的限制有关

~~~~~~

6. 怎么用java发送带附件的邮件代码详解

packageemail;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileInputStream;
importjava.io.FileNotFoundException;
importjava.io.IOException;
importjava.io.InputStream;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.io.UnsupportedEncodingException;
importjava.net.Socket;
importjava.nio.charset.Charset;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.Date;
importjava.util.HashMap;
importjava.util.List;
importjava.util.Map;
importsun.misc.BASE64Encoder;
publicclassMail{
privatestaticfinalStringLINE_END=" ";
privatebooleanisDebug=true;
=true;
privateStringhost;
privateStringfrom;
privateList<String>to;
privateList<String>cc;
privateList<String>bcc;
privateStringsubject;
privateStringuser;
privateStringpassword;
privateStringcontentType;
privateStringboundary;
privateStringboundaryNextPart;
;
privateStringcharset;
;
privateStringcontent;
;
;
privateList<MailPart>partSet;
privatestaticMap<String,String>contentTypeMap;
static{
//MIMEMediaTypes
contentTypeMap=newHashMap<String,String>();
contentTypeMap.put("xls","application/vnd.ms-excel");
contentTypeMap.put("xlsx","application/vnd.ms-excel");
contentTypeMap.put("xlsm","application/vnd.ms-excel");
contentTypeMap.put("xlsb","application/vnd.ms-excel");
contentTypeMap.put("doc","application/msword");
contentTypeMap.put("dot","application/msword");
contentTypeMap.put("docx","application/msword");
contentTypeMap.put("docm","application/msword");
contentTypeMap.put("dotm","application/msword");
}
{
publicMailPart(){
}
}
publicMail(){
defaultAttachmentContentType="application/octet-stream";
simpleDatePattern="yyyy-MM-ddHH:mm:ss";
boundary="--=_NextPart_zlz_3907_"+System.currentTimeMillis();
boundaryNextPart="--"+boundary;
contentTransferEncoding="base64";
contentType="multipart/alternative";
charset=Charset.defaultCharset().name();
partSet=newArrayList<MailPart>();
to=newArrayList<String>();
cc=newArrayList<String>();
bcc=newArrayList<String>();
}
(StringfileName){
Stringret=null;
if(null!=fileName){
intflag=fileName.lastIndexOf(".");
if(0<=flag&&flag<fileName.length()-1){
fileName=fileName.substring(flag+1);
}
ret=contentTypeMap.get(fileName);
}
if(null==ret){
ret=defaultAttachmentContentType;
}
returnret;
}

privateStringtoBase64(Stringstr,Stringcharset){
if(null!=str){
try{
returntoBase64(str.getBytes(charset));
}catch(UnsupportedEncodingExceptione){
e.printStackTrace();
}
}
return"";
}
privateStringtoBase64(byte[]bs){
returnnewBASE64Encoder().encode(bs);
}
privateStringtoBase64(Stringstr){
returntoBase64(str,Charset.defaultCharset().name());
}
privateStringgetAllParts(){
intpartCount=partSet.size();
StringBuildersbd=newStringBuilder(LINE_END);
for(inti=partCount-1;i>=0;i--){
Mailattachment=partSet.get(i);
StringattachmentContent=attachment.getContent();
if(null!=attachmentContent&&0<attachmentContent.length()){
sbd.append(getBoundaryNextPart()).append(LINE_END);
sbd.append("Content-Type:");
sbd.append(attachment.getContentType());
sbd.append(LINE_END);
sbd.append("Content-Transfer-Encoding:");
sbd.append(attachment.getContentTransferEncoding());
sbd.append(LINE_END);
if(i!=partCount-1){
sbd.append("Content-Disposition:");
sbd.append(attachment.getContentDisposition());
sbd.append(LINE_END);
}
sbd.append(LINE_END);
sbd.append(attachment.getContent());
sbd.append(LINE_END);
}
}
sbd.append(LINE_END);
sbd.append(LINE_END);
partSet.clear();
returnsbd.toString();
}
privatevoidaddContent(){
if(null!=content){
MailPartpart=newMailPart();
part.setContent(toBase64(content));
part.setContentType("text/plain;charset=""+charset+""");
partSet.add(part);
}
}
privateStringlistToMailString(List<String>mailAddressList){
StringBuildersbd=newStringBuilder();
if(null!=mailAddressList){
intlistSize=mailAddressList.size();
for(inti=0;i<listSize;i++){
if(0!=i){
sbd.append(";");
}
sbd.append("<").append(mailAddressList.get(i)).append(">");
}
}
returnsbd.toString();
}
privateList<String>getrecipient(){
List<String>list=newArrayList<String>();
list.addAll(to);
list.addAll(cc);
list.addAll(bcc);
returnlist;
}
publicvoidaddAttachment(StringfilePath){
addAttachment(filePath,null);
}
publicvoidaddTo(StringmailAddress){
this.to.add(mailAddress);
}
publicvoidaddCc(StringmailAddress){
this.cc.add(mailAddress);
}
publicvoidaddBcc(StringmailAddress){
this.bcc.add(mailAddress);
}
publicvoidaddAttachment(StringfilePath,Stringcharset){
if(null!=filePath&&filePath.length()>0){
Filefile=newFile(filePath);
try{
addAttachment(file.getName(),newFileInputStream(file),
charset);
}catch(FileNotFoundExceptione){
System.out.println("错误:"+e.getMessage());
System.exit(1);
}
}
}

7. javamail 附件有大小限制吗,我发了50m的附件发送成功了,发送60m就不行了,请问在哪设置,小弟感激不尽

通常是服务器的限制,如果是web程序可以看看是否发送等待中连接超时了

8. javamail如何收附件

参考代码如下:
import javax.mail.*;
import java.util.*;
import java.io.*;

public class ReceiveMail {

//处理任何一种邮件都需要的方法
private void handle(Message msg) throws Exception {
System.out.println("邮件主题:" + msg.getSubject());
System.out.println("邮件作者:" + msg.getFrom()[0].toString());
System.out.println("发送日期:" + msg.getSentDate());
}

//处理文本邮件
private void handleText(Message msg) throws Exception {
this.handle(msg);
System.out.println("邮件内容:"+msg.getContent());
}

//处理Multipart邮件,包括了保存附件的功能
private static void handleMultipart(Message msg) throws Exception {
String disposition;
BodyPart part;

Multipart mp = (Multipart) msg.getContent();
//Miltipart的数量,用于除了多个part,比如多个附件
int mpCount = mp.getCount();
for (int m = 0; m < mpCount; m++) {
this.handle(msg);
part = mp.getBodyPart(m);
disposition = part.getDisposition();
//判断是否有附件
if (disposition != null && disposition.equals(Part.ATTACHMENT))
{
//这个方法负责保存附件
saveAttach(part);
} else {
//不是附件,就只显示文本内容
System.out.println(part.getContent());
}
}
}

private static void saveAttach(BodyPart part) throws Exception {
//得到未经处理的附件名字
String temp = part.getFileName();
//除去发送邮件时,对中文附件名编码的头和尾,得到正确的附件名
//(请参考发送邮件程序SendMail的附件名编码部分)
String s = temp.substring(8, temp.indexOf("?="));
//文件名经过了base64编码,下面是解码
String fileName = base64Decoder(s);
System.out.println("有附件:" + fileName);

InputStream in = part.getInputStream();
FileOutputStream writer = new FileOutputStream(new File(
"保存附件的本地路径"+ "\\"+fileName));
byte[] content = new byte[255];
int read = 0;
while ((read = in.read(content)) != -1) {
writer.write(content);
}
writer.close();
in.close();
}
//base64解码
private static String base64Decoder(String s) throws Exception {
sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder();
byte[] b = decoder.decodeBuffer(s);
return (new String(b));
}

public static void receive(String receiverMailBoxAddress, String username,String password) {
//本人用的是yahoo邮箱,故接受邮件使用yahoo的pop3邮件服务器
String host = "pop.mail.yahoo.com.cn";
try {
//连接到邮件服务器并获得邮件
Properties prop = new Properties();
prop.put("mail.pop3.host", host);
Session session = Session.getDefaultInstance(prop);
Store store = session.getStore("pop3");
store.connect(host, username, password);

Folder inbox = store.getDefaultFolder().getFolder("INBOX");
//设置inbox对象属性为可读写,这样可以控制在读完邮件后直接删除该附件
inbox.open(Folder.READ_WRITE);

Message[] msg = inbox.getMessages();

FetchProfile profile = new FetchProfile();
profile.add(FetchProfile.Item.ENVELOPE);
inbox.fetch(msg, profile);

for (int i = 0; i < msg.length; i++) {
//标记此邮件的flag标志对象的DELETED位为true,可以在读完邮件后直接删除该附件,具体执行时间是在调用
//inbox.close()方法的时候
msg[i].setFlag(Flags.Flag.DELETED, true);
handleMultipart(msg[i]);
System.out.println("****************************");
}
if (inbox != null) {
//参数为true表明阅读完此邮件后将其删除,更多的属性请参考mail.jar的API
inbox.close(true);
}
if (store != null) {
store.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

9. JavaMail 发送邮件附件的时候,如何把程序中读出来的IO流直接发出去,而不是保存成临时文件

这个需要根据你实际的代码进行改造啊,贴上代码

10. 你好,javamail发送邮件时在页面上得到附件路径问题你最终解决了吗我不知道该怎么获得附件的路径

没明白,是路径乱码吗? 是的话,就需要加密 base64,查一下关于javamail base64(好像是encode编码)的就好了

阅读全文

与javamail发送附件相关的资料

热点内容
wps安装后找不到所在文件夹 浏览:9
欧美全程高能爱情电影 浏览:303
殷桃演的抗日电影叫什么 浏览:656
大数据计算哪个国家发展快 浏览:15
php网页统计代码 浏览:967
哪里在线看小电影 浏览:166
单击应用程序的解释 浏览:999
韩国电影从楼上小洞看下面美女0 浏览:887
苹果A1622什么版本 浏览:814
linux查看目录所有文件大小 浏览:674
拿快递露奶电影 浏览:38
登山的目的中文2电影中文字 浏览:887
国外男男大尺度电影 浏览:902
有天资榜的小说叶凌天 浏览:407
团鬼六最新电影 浏览:266
苹果6设置id怎么设置密码 浏览:278
一个小孩被绑架的搞笑电影叫什么 浏览:868
一龙二凤小说 浏览:358
电影不卡免费在线看 浏览:797
妻子是美容院的老板韩国 浏览:641

友情链接