java發送郵件,帶抄送和附件
package com.dailywork.util;import java.io.UnsupportedEncodingException; import java.util.Properties;
import javax.activation.DataHandler; import javax.activation.FileDataSource; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; 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;
public class EmailManager {
private Properties props; //系統屬性 private Session session; //郵件會話對象 private MimeMessage mimeMsg; //MIME郵件對象 private Multipart mp; //Multipart對象,郵件內容,標題,附件等內容均添加到其中后再生成MimeMessage對象 /** * Constructor * @param smtp 郵件發送服務器 */ public EmailManager(){ props = System.getProperties(); props.put("mail.smtp.auth","false"); session = Session.getDefaultInstance(props, null); session.setDebug(true); mimeMsg = new MimeMessage(session); mp = new MimeMultipart(); } /** * Constructor * @param smtp 郵件發送服務器 */ public EmailManager(String smtp, String username, String password){ props = System.getProperties(); props.put("mail.smtp.auth","true"); props.put("mail.smtp.host", smtp); props.put("username", username); props.put("password", password); session = Session.getDefaultInstance(props, null); session.setDebug(true); mimeMsg = new MimeMessage(session); mp = new MimeMultipart(); } /** * 發送郵件 */ public boolean sendMail(String from, String[] to, String[] copyto, String subject, String content, String filename) { try { //設置發信人 mimeMsg.setFrom(new InternetAddress(from)); //設置接收人 for (int i = 0; i < to.length; i++) { mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to[i])); } //設置抄送人 for (int i = 0; i < copyto.length; i++) { mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(copyto[i])); } //設置主題 mimeMsg.setSubject(subject); //設置正文 BodyPart bp = new MimeBodyPart(); bp.setContent(content, "text/html;charset=utf-8"); mp.addBodyPart(bp); //設置附件 bp = new MimeBodyPart(); FileDataSource fileds = new FileDataSource(filename); bp.setDataHandler(new DataHandler(fileds)); bp.setFileName(MimeUtility.encodeText(fileds.getName(),"UTF-8","B")); mp.addBodyPart(bp); mimeMsg.setContent(mp); mimeMsg.saveChanges(); //發送郵件 if(props.get("mail.smtp.auth").equals("true")){ Transport transport = session.getTransport("smtp"); transport.connect((String)props.get("mail.smtp.host"), (String)props.get("username"), (String)props.get("password")); transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO)); transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.CC)); transport.close(); }else{ Transport.send(mimeMsg); } System.out.println("郵件發送成功"); } catch (MessagingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } return true; } public static void main(String[] args){ String smtp = "smtp.163.com"; String username="xxx@163.com"; String password="xxx"; String from = "xxx@163.com"; String[] to = {"xxx@qq.com"}; String[] copyto = {"xxx@qq.com"}; String subject = "主題"; String content = "郵件內容"; String filename = "D:\\xxx.txt"; EmailManager email = new EmailManager(smtp, username, password); email.sendMail(from, to, copyto, subject, content, filename); }
}</pre>
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!