JavaMail:邮件发送以及sina、163、QQ服务器不同的解析结果
来源:互联网 发布:淡香水知乎 编辑:程序博客网 时间:2024/05/16 08:24
- import java.util.Properties;
- import javax.mail.Message;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.MimeMessage;
- import createMails.WithAttachmentMessage;
- /**
- * 邮件发送程序
- * @author haolloyin
- */
- public class MessageSender {
- /**
- * 创建Session对象,此时需要配置传输的协议,是否身份认证
- */
- public Session createSession(String protocol) {
- Properties property = new Properties();
- property.setProperty("mail.transport.protocol", protocol);
- property.setProperty("mail.smtp.auth", "true");
- Session session = Session.getInstance(property);
- // 启动JavaMail调试功能,可以返回与SMTP服务器交互的命令信息
- // 可以从控制台中看一下服务器的响应信息
- session.setDebug(true);
- return session;
- }
- /**
- * 传入Session、MimeMessage对象,创建 Transport 对象发送邮件
- */
- public void sendMail(Session session, MimeMessage msg) throws Exception {
- // 设置发件人使用的SMTP服务器、用户名、密码
- String smtpServer = "smtp.sina.com";
- String user = "test_hao@sina.cn";
- String pwd = "123456";
- // 由 Session 对象获得 Transport 对象
- Transport transport = session.getTransport();
- // 发送用户名、密码连接到指定的 smtp 服务器
- transport.connect(smtpServer, user, pwd);
- transport.sendMessage(msg, msg.getRecipients(Message.RecipientType.TO));
- transport.close();
- }
- // 测试:发送邮件
- public static void main(String[] args) throws Exception {
- MessageSender sender = new MessageSender();
- // 指定使用SMTP协议来创建Session对象
- Session session = sender.createSession("smtp");
- // 使用前面文章所完成的邮件创建类获得 Message 对象
- MimeMessage mail = new WithAttachmentMessage().createMessage(session);
- sender.sendMail(session, mail);
- }
- }
- import java.io.FileOutputStream;
- import java.util.Properties;
- import javax.activation.DataHandler;
- import javax.activation.FileDataSource;
- import javax.mail.Message;
- import javax.mail.Session;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeBodyPart;
- import javax.mail.internet.MimeMessage;
- import javax.mail.internet.MimeMultipart;
- /**
- * 创建内含附件、图文并茂的邮件
- * @author haolloyin
- */
- public class WithAttachmentMessage {
- /**
- * 根据传入的文件路径创建附件并返回
- */
- public MimeBodyPart createAttachment(String fileName) throws Exception {
- MimeBodyPart attachmentPart = new MimeBodyPart();
- FileDataSource fds = new FileDataSource(fileName);
- attachmentPart.setDataHandler(new DataHandler(fds));
- attachmentPart.setFileName(fds.getName());
- return attachmentPart;
- }
- /**
- * 根据传入的邮件正文body和文件路径创建图文并茂的正文部分
- */
- public MimeBodyPart createContent(String body, String fileName)
- throws Exception {
- // 用于保存最终正文部分
- MimeBodyPart contentBody = new MimeBodyPart();
- // 用于组合文本和图片,"related"型的MimeMultipart对象
- MimeMultipart contentMulti = new MimeMultipart("related");
- // 正文的文本部分
- MimeBodyPart textBody = new MimeBodyPart();
- textBody.setContent(body, "text/html;charset=gbk");
- contentMulti.addBodyPart(textBody);
- // 正文的图片部分
- MimeBodyPart jpgBody = new MimeBodyPart();
- FileDataSource fds = new FileDataSource(fileName);
- jpgBody.setDataHandler(new DataHandler(fds));
- jpgBody.setContentID("logo_jpg");
- contentMulti.addBodyPart(jpgBody);
- // 将上面"related"型的 MimeMultipart 对象作为邮件的正文
- contentBody.setContent(contentMulti);
- return contentBody;
- }
- /**
- * 根据传入的 Seesion 对象创建混合型的 MIME消息
- */
- public MimeMessage createMessage(Session session) throws Exception {
- String from = "test_hao@sina.cn";
- String to = "test_hao@163.com";
- String subject = "创建内含附件、图文并茂的邮件!";
- String body = "<h4>内含附件、图文并茂的邮件测试!!!</h4> </br>"
- + "<a href = http://haolloyin.blog.51cto.com/> 蚂蚁</a></br>"
- + "<img src = \"cid:logo_jpg\"></a>";
- MimeMessage msg = new MimeMessage(session);
- msg.setFrom(new InternetAddress(from));
- msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
- msg.setSubject(subject);
- // 创建邮件的各个 MimeBodyPart 部分
- MimeBodyPart attachment01 = createAttachment("F:\\java\\Hello_JavaMail.java");
- MimeBodyPart attachment02 = createAttachment("F:\\java\\Hello_JavaMail.7z");
- MimeBodyPart content = createContent(body, "F:\\java\\logo.jpg");
- // 将邮件中各个部分组合到一个"mixed"型的 MimeMultipart 对象
- MimeMultipart allPart = new MimeMultipart("mixed");
- allPart.addBodyPart(attachment01);
- allPart.addBodyPart(attachment02);
- allPart.addBodyPart(content);
- // 将上面混合型的 MimeMultipart 对象作为邮件内容并保存
- msg.setContent(allPart);
- msg.saveChanges();
- return msg;
- }
- // 测试生成邮件
- public static void main(String[] args) throws Exception {
- WithAttachmentMessage mail = new WithAttachmentMessage();
- Session session = Session.getDefaultInstance(new Properties());
- MimeMessage message = mail.createMessage(session);
- message.writeTo(new FileOutputStream("withAttachmentMail.eml"));
- }
- }
0 0
- JavaMail:邮件发送以及sina、163、QQ服务器不同的解析结果
- JavaMail 发送邮件,以及sina、163、QQ服务器不同的解析结果(附图)
- JavaMail:邮件发送以及sina、163、QQ服务器不同的解析结果
- Apache公司的JavaMail发送邮件到sina的邮件服务器
- javaMail发送QQ邮件
- JavaMail发送qq邮件
- JavaMail发送QQ邮件
- JavaMail邮件发送解析
- 使用javamail发送qq邮件
- JAVAMail 实现 QQ邮件发送
- javamail实现QQ发送邮件
- Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
- Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
- Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
- Java Web(十三) 使用javamail进行发送邮件,(使用QQ,163,新浪邮箱服务器)
- Javamail实现的匿名邮件,模拟邮件服务器发送行为
- JavaMail本地服务器发送邮件
- javamail使用qq邮箱发送邮件失败的解决方法
- leetcode.357. Count Numbers with Unique Digits
- DRP中之 cookie
- Linux Shell 编程 [精华]
- 第13周项目四——立体族类共有的抽象类
- 10 的 n 次幂
- JavaMail:邮件发送以及sina、163、QQ服务器不同的解析结果
- PHP面试题:50,40,30,20,1这五张优惠卷,订单金额为X元,用方法实现return多少张优惠卷
- transform与for_each的用法
- Java Swing简单控件实例(JButton,JLabel,JMenuBar,JComboBo)
- Activity启动模式与startActivityForResult()跳转的冲突
- LightOJ - 1197 Help Hanzo 素数筛
- PagerSlidingTabStrip使用遇到的问题一
- 洗牌
- 学习git