<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-17  評(píng)論-6  文章-1  trackbacks-0

    有發(fā)送人名稱中文支持,支持bytes格式附件,附件中文支持

    ? public static boolean send(String fromName, String fromAddr, String to, String subject, String
    ???????????????????????????? body, String fileName, byte[] file) throws
    ????? Exception {
    ??????? //發(fā)送人名稱,用base64編碼,再加上特殊標(biāo)志
    ??????? fromName = "=?GB2312?B?" + new String(base64.encode((fromName).getBytes()))? + "?=";
    ??? Properties props = new Properties();
    ??? Session session = Session.getInstance(props, null);
    ??? props.put("mail.smtp.host", Constants.mailhost);
    ??? props.put("mail.smtp.auth", "false");?
    ??? Message msg = new MimeMessage(session);
    ????? msg.setFrom(new InternetAddress(fromAddr,fromName));
    //后面的BodyPart將加入到此處創(chuàng)建的Multipart中
    ??? Multipart mp = new MimeMultipart();
    // Create the message part
    ??? BodyPart messageBodyPart = new MimeBodyPart();

    ??? // Fill the message
    ??? messageBodyPart.setText(body);

    ??? mp.addBodyPart(messageBodyPart);

    ????? /*發(fā)送附件*/
    ???? if (file != null && file.length > 0) {
    ?????? //利用枚舉器方便的遍歷集合
    ???????? MimeBodyPart mbp = new MimeBodyPart();?
    //???????? File fileTmp = null;
    ???????? //得到數(shù)據(jù)源
    //???????? FileDataSource fds = new FileDataSource(fileTmp);
    ???????? //得到附件本身并至入BodyPart
    ???????? mbp.setDataHandler(new DataHandler(new ByteArrayDataSource(file,"application/octet-stream")));
    ???????? //得到文件名同樣至入BodyPart
    ???????? mbp.setFileName(MimeUtility.encodeWord(fileName,"GB2312",null));
    ???????? mp.addBodyPart(mbp);
    ???? }
    ???
    ??? //Multipart加入到信件
    ??? msg.setContent(mp);

    ??? msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
    ??? msg.setSubject(subject);

    ??? msg.setHeader("X-Mailer", "personal Email Sender");
    ??? msg.setSentDate(new Date());

    ??? Transport transport = session.getTransport("smtp");

    ??? //添加認(rèn)證信息
    ??? transport.connect(Constants.mailhost, Constants.user, Constants.pwd);
    ??? transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
    ??? transport.close();
    ??? return true;
    ? }




    import java.io.*;
    import javax.activation.*;

    public class ByteArrayDataSource implements DataSource {
    ??? /** * Data to write. */
    ??? private byte[] _data;

    ??? /** * Content-Type. */
    ??? private String _type;

    ??? /* Create a datasource from an input stream */
    ??? public ByteArrayDataSource(InputStream is, String type) {
    ??????? _type = type;
    ??????? try {
    ??????????? ByteArrayOutputStream os = new ByteArrayOutputStream();
    ??????????? int ch;

    ??????????? // XXX : must be made more efficient by
    ??????????? // doing buffered reads, rather than one byte reads
    ??????????? while ((ch = is.read()) != -1)
    ??????????????? os.write(ch);
    ??????????? _data = os.toByteArray();
    ??????? } catch (IOException ioe) {
    ??????? }
    ??? }

    ??? /* Create a datasource from a byte array */
    ??? public ByteArrayDataSource(byte[] data, String type) {
    ??????? _data = data;
    ??????? _type = type;
    ??? }

    ??? /* Create a datasource from a String */
    ??? public ByteArrayDataSource(String data, String type) {
    ??????? try {
    ??????????? // Assumption that the string contains only ascii
    ??????????? // characters ! Else just pass in a charset into this
    ??????????? // constructor and use it in getBytes()
    ??????????? _data = data.getBytes("iso-8859-1");
    ??????? } catch (UnsupportedEncodingException uee) {
    ??????? }
    ??????? _type = type;
    ??? }

    ??? public InputStream getInputStream() throws IOException {
    ??????? if (_data == null)
    ??????????? throw new IOException("no data");
    ??????? return new ByteArrayInputStream(_data);
    ??? }

    ??? public OutputStream getOutputStream() throws IOException {
    ??????? throw new IOException("cannot do this");
    ??? }

    ??? public String getContentType() {
    ??????? return _type;
    ??? }

    ??? public String getName() {
    ??????? return "dummy";
    ??? }
    }

    posted on 2006-05-10 18:02 小鐵匠 閱讀(659) 評(píng)論(1)  編輯  收藏 所屬分類: java

    評(píng)論:
    # re: java 發(fā)mail 2008-04-01 22:16 | 草包書生
    我也來研究一下,支持中文的附件  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 亚洲一卡二卡三卡| 久久国产乱子伦免费精品| 亚洲成人免费网站| 日本一道一区二区免费看 | 久久受www免费人成_看片中文| 一级视频在线免费观看| 亚洲欧美成人一区二区三区| 亚洲黄色免费观看| 久久亚洲国产精品一区二区| 亚洲成a人一区二区三区 | 亚洲中文字幕无码av在线| 亚洲国产精品无码av| 亚洲精品在线视频| 日本高清免费不卡视频| 久久笫一福利免费导航| 2022久久国产精品免费热麻豆| 中文在线免费观看| 特黄特色的大片观看免费视频| 亚洲国产成人无码AV在线影院| 亚洲人成片在线观看| 亚洲日韩在线视频| 久久精品a亚洲国产v高清不卡| 亚洲av永久无码精品古装片| 亚洲精品夜夜夜妓女网| 久久久久亚洲AV无码专区网站 | 亚洲成人激情小说| 亚洲乱码日产精品BD在线观看| 亚洲成年人电影网站| 亚洲国产高清人在线| 亚洲网站在线观看| 噜噜噜亚洲色成人网站∨| 亚洲邪恶天堂影院在线观看| 亚洲国产天堂在线观看| 亚洲欧洲日韩国产综合在线二区| 久久亚洲伊人中字综合精品| 亚洲国产精品久久久久网站| 97se亚洲综合在线| 亚洲国产日产无码精品| 亚洲狠狠成人综合网| 亚洲国产成人无码AV在线影院| 西西人体大胆免费视频|