?由于發(fā)送中文郵件報(bào)錯(cuò),
? ? ?以163郵箱發(fā)送中文文本郵件為例:
? ? ?String host ="smtp.163.com"; ?
? ? ? Properties properties =new Properties();
? ? ? ? properties.setProperty("mail.smtp.host",host);
? ? ? ? properties.setProperty("mail.transport.protocol", "smtp");
? ? ? ? properties.setProperty("mail.smtp.auth","true");
? ? ? ? //properties.setProperty("mail.smtps.ssl.enable", "true");
//? ? ? ? properties.put("mail.smtp.ssl.enable", "true");
? ? ? ? Session session = Session.getDefaultInstance(properties);
? ? ? ? session.setDebug(true);
? ? ? ? Transport tf = session.getTransport();
? ? ? ? tf.connect(host,from,pwd);//pwd一定是用戶(hù)授權(quán)碼足淆,如果是用戶(hù)登錄密碼,會(huì)報(bào)錯(cuò)暇韧,如果自己不知道這個(gè)碼是多少?可以先取消浓瞪,然后在重新設(shè)置一下懈玻,就可以知道自己的授權(quán)碼。
? ? ? ? MimeMessage message =new MimeMessage(session);
? ? ? ? message.setFrom(new InternetAddress(from));
? ? ? ? message.setRecipient(Message.RecipientType.TO,new InternetAddress(to));
? ? ? ? message.setSubject("主題主題");
? ? ? ? String temp ="主題主題主題主題主題主題主題主題主題主題";
? ? ? ? message.setContent(temp,"text/html;charset=UTF-8");//發(fā)現(xiàn)發(fā)送中文失敗報(bào)554錯(cuò)乾颁,從163郵箱發(fā)送郵件報(bào)錯(cuò)涂乌,后來(lái)改成如下方法:
MimeBodyPart messageBodyPart =new MimeBodyPart();
messageBodyPart.setText(temp);
// 創(chuàng)建多重消息
Multipart multipart =new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart,"text/html;charset=UTF-8");
message.saveChanges();
tf.sendMessage(message,message.getAllRecipients());
tf.close();
這樣就可以發(fā)送成功了。