Java:以javamail寄送附件圖檔與html格式email教學
在看這篇教學前,你應該要先將 javamail 相關設定完成,
下載點在:http://java.sun.com/products/javamail/downloads/index.html
API 文件:http://java.sun.com/products/javamail/javadocs/index.html
若你需要 source code 可見:http://kenai.com/projects/javamail/downloads
使用 java 寄信時我們常用 javamail,
然而很多人都只會寄純文字信件或單純的 html郵件,
如果你想先知道要怎麼寄純文字的信件的話,
這個連結有很詳細的 code :Send email with JavaMail 。
學會了寄純文字和html,但是要怎麼把附件的圖顯示在 html中呢?
直接看下面的程式就可以明白了,超簡單的!
關鍵字:mail, email, picture, image, 附檔, 附件, html, javamail, 程式, 教學, 範例
參考資料:
下載點在:http://java.sun.com/products/javamail/downloads/index.html
API 文件:http://java.sun.com/products/javamail/javadocs/index.html
若你需要 source code 可見:http://kenai.com/projects/javamail/downloads
使用 java 寄信時我們常用 javamail,
然而很多人都只會寄純文字信件或單純的 html郵件,
如果你想先知道要怎麼寄純文字的信件的話,
這個連結有很詳細的 code :Send email with JavaMail 。
學會了寄純文字和html,但是要怎麼把附件的圖顯示在 html中呢?
直接看下面的程式就可以明白了,超簡單的!
執行完後的結果會像這樣,是不是超簡單的呢?
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.FileDataSource;
- import javax.mail.*;
- import javax.mail.internet.*;
- public class SendMailDemo {
- /**
- * Java:以javamail寄送附件圖檔與html格式email教學
- *
- * @author werdna at http://werdna1222coldcodes.blogspot.com/
- */
- public static void main(String[] args) {
- try {
- // 初始設定,username 和 password 非必要
- Properties props = new Properties();
- props.setProperty("mail.transport.protocol", "smtp");
- props.setProperty("mail.host", "yourmailserver.location.or.ip");
- //props.setProperty("mail.user", "ifUserNameNeeded");
- //props.setProperty("mail.password", "ifPasswordNeeded");
- Session mailSession = Session.getDefaultInstance(props, null);
- Transport transport = mailSession.getTransport();
- // 產生整封 email 的主體 message
- MimeMessage message = new MimeMessage(mailSession);
- // 設定主旨
- message.setSubject("Javamail with picture attachment and html contents.");
- // 文字部份,注意 img src 部份要用 cid:接下面附檔的header
- MimeBodyPart textPart = new MimeBodyPart();
- StringBuffer html = new StringBuffer();
- html.append("<h2>這是第一行</h2><br>");
- html.append("<h3>這是第二行,下面會是圖</h3><br>");
- html.append("<img src='cid:image'/><br>");
- textPart.setContent(html.toString(), "text/html; charset=UTF-8");
- // 圖檔部份,注意 html 用 cid:image,則header要設<image>
- MimeBodyPart picturePart = new MimeBodyPart();
- FileDataSource fds = new FileDataSource("YourPictureFile.jpg");
- picturePart.setDataHandler(new DataHandler(fds));
- picturePart.setFileName(fds.getName());
- picturePart.setHeader("Content-ID", "<image>");
- Multipart email = new MimeMultipart();
- email.addBodyPart(textPart);
- email.addBodyPart(picturePart);
- message.setContent(email);
- message.addRecipient(Message.RecipientType.TO, new InternetAddress(
- "youremail@address"));
- transport.connect();
- transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO))
- ;
- transport.close();
- } catch (AddressException e) {
- e.printStackTrace();
- } catch (NoSuchProviderException e) {
- e.printStackTrace();
- } catch (MessagingException e) {
- e.printStackTrace();
- }
- }
- }
關鍵字:mail, email, picture, image, 附檔, 附件, html, javamail, 程式, 教學, 範例
參考資料:
留言
張貼留言