rti.embedObject(EmbeddedObject.EMBED_ATTACHMENT, null,
attachFilePath, attachFilePath)// 添加附件
注:其中rti = (RichTextItem) memo.createRichTextItem("Body")
让邮件带上附件就一句话,很简单吧。
如果,你不明白其中的参数,还是会搞不出来,一个字晕!
其中前两个参数我就不说了,第三个和第四个参数写成一样就可以了。
强烈注意:
1* 添加的附件必须放在DOMINO服务器上,不能放在客户端添加附件,不要问为什么,这是事实。你在客户端的硬盘上无论放在哪,它也不让你上传。
2*我们的项目环境,DOMINO是运行在AS400上,它的安装目录是em_01,我们就假设把附件放在AS400 的em_01/test/test.tar,在程序使用相对路径,"test/test.tar"相对于邮件的根目录em_01.
如果,按我说的做法应该不会有问题了。若想看一个完整例子,请参考我的“java在收。发lotus邮件的实例了”。
package cn bric crm util
import java util Date
import java util Enumeration
import java util Properties
import java util Vector
import javax activation *
import javax mail Authenticator
import javax mail Message
import javax mail Multipart
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 mail internet MimeUtility
import java io FileInputStream
import java io IOException
import java text ParseException
import java util ArrayList
import java util Date
import java util HashSet
import java util Iterator
import java util List
import java util Locale
import java util Set
import java util regex Pattern
/**
* <p>
* Title: 使用javamail发送邮件
* </p>
*/
public class MailUtils {
String to = // 收件人
String from = // 发件人
String host = // *** tp主机
String username =
String password =
String filename = // 附件文件名
String subject = // 邮件主题
String content = // 邮件正文
Vector file = new Vector()// 附件文件集合
/**
* <br>
* 方法说明 默认构造器 <br>
* 输入参数 <br>
* 返回类型
*/
public MailUtils() {
}
/**
* <br>
* 方法说明 构造器 提供直接的参数传入 <br>
* 输入参数 <br>
* 返回类型
*/
public MailUtils(String to String from String *** tpServer
String username String password String subject String content) {
this to = to
this from = from
this host = *** tpServer
this username = username
this password = password
this subject = subject
ntent = content
}
/**
* <br>
* 方法说明 设置邮件服务器地址 <br>
* 输入参数 String host 邮件服务器地址名称 <br>
* 返回类型
*/
public void setHost(String host) {
this host = host
}
/**
* <br>
* 方法说明 设置登录服务器校验密码 <br>
* 输入参数 <br>
* 返回类型
*/
public void setPassWord(String pwd) {
this password = pwd
}
/**
* <br>
* 方法说明 设置登录服务器校验用户 <br>
* 输入参数 <br>
* 返回类型
*/
public void setUserName(String usn) {
this username = usn
}
/**
* <br>
* 方法说明 设置邮件发送目的邮箱 <br>
* 输入参数 <br>
* 返回类型
*/
public void setTo(String to) {
this to = to
}
/**
* <br>
* 方法说明 设置邮件发送源邮箱 <br>
* 输入参数 <br>
* 返回类型
*/
public void setFrom(String from) {
this from = from
}
/**
* <br>
* 方法说明 设置邮件主题 <br>
* 输入参数 <br>
* 返回类型
*/
public void setSubject(String subject) {
this subject = subject
}
/**
* <br>
* 方法说明 设置邮件内容 <br>
* 输入参数 <br>
* 返回类型
*/
public void setContent(String content) {
ntent = content
}
/**
* <br>
* 方法说明 把主题转换为中文 <br>
* 输入参数 String strText <br>
* 返回类型
*/
public String transferChinese(String strText) {
try {
strText = MimeUtility encodeText(new String(strText getBytes()
GB ) GB B )
} catch (Exception e) {
e printStackTrace()
}
return strText
}
/**
* <br>
* 方法说明 往附件组合中添加附件 <br>
* 输入参数 <br>
* 返回类型
*/
public void attachfile(String fname) {
file addElement(fname)
}
/**
* <br>
* 方法说明 发送邮件 <br>
* 输入参数 <br>
* 返回类型 boolean 成功为true 反之为false
*/
public boolean sendMail() {
// 构造mail session
Properties props = new Properties()
props put( mail *** tp host host)
props put( mail *** tp auth true )
Session session = Session getDefaultInstance(props
new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username password)
}
})
//Session session = Session getDefaultInstance(props)
// Session session = Session getDefaultInstance(props null)
try {
// 构造MimeMessage 并设定基本的值
MimeMessage msg = new MimeMessage(session)
//MimeMessage msg = new MimeMessage()
msg setFrom(new InternetAddress(from))
//msg addRecipients(Message RecipientType TO address)//这个只能是给一个人发送email
msg setRecipients(Message RecipientType BCC InternetAddress parse(to))
subject = transferChinese(subject)
msg setSubject(subject)
// 构造Multipart
Multipart mp = new MimeMultipart()
// 向Multipart添加正文
MimeBodyPart mbpContent = new MimeBodyPart()
mbpContent setContent(content text/charset=gb )
// 向MimeMessage添加(Multipart代表正文)
mp addBodyPart(mbpContent)
// 向Multipart添加附件
Enumeration efile = file elements()
while (efile hasMoreElements()) {
MimeBodyPart mbpFile = new MimeBodyPart()
filename = efile nextElement() toString()
FileDataSource fds = new FileDataSource(filename)
mbpFile setDataHandler(new DataHandler(fds))
mbpFile setFileName(fds getName())
// 向MimeMessage添加(Multipart代表附件)
mp addBodyPart(mbpFile)
}
file removeAllElements()
// 向Multipart添加MimeMessage
msg setContent(mp)
msg setSentDate(new Date())
msg saveChanges()
// 发送邮件
Transport transport = session getTransport( *** tp )
nnect(host username password)
transport sendMessage(msg msg getAllRecipients())
transport close()
} catch (Exception mex) {
mex printStackTrace()
// Exception ex = null
// if ((ex = mex getNextException()) != null) {
// ex printStackTrace()
// }
return false
}
return true
}
/**
* <br>
* 方法说明 主方法 用于测试 <br>
* 输入参数 <br>
* 返回类型
*/
public static void main(String[] args) {
MailUtils sendmail = new MailUtils()
sendmail setHost( )
sendmail setUserName( se )
sendmail setPassWord( bric )
sendmail setTo( che )
sendmail setFrom( se )
sendmail setSubject( 你好 这是测试! )
sendmail setContent( 你好这是一个带多附件的测试! )
// Mail sendmail = new
// Mail( du_jiang 你好 胃 你好吗? )
sendmail attachfile( d:\\news rar )
sendmail attachfile( d:\\jhjl rar )
System out println(sendmail sendMail())
}
lishixinzhi/Article/program/Java/hx/201311/25753java mail发带附近件的程序,你搜一下,有例子
这个不是上传到邮件服务器,是发送邮件时,包含在邮件中,
而你在网页邮箱里看到的,是用后台程序解析完邮件,将文件提取出来,放到服务器上,提供下载。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)