javamail发送邮件
来源:互联网 发布:网络上的uv是什么意思 编辑:程序博客网 时间:2024/06/09 14:54
使用javamail发送邮件
在之前的学习中,有需要用到java来发送邮件,通过在网上查找资料,之前实现过一版可以给自己发送邮件但是不能给他人发的代码。今天又折腾了一天,总算解决了。
1.首先不管你设置的发送邮箱是哪一种,第一步都需要开启POP3/SMTP服务,qq邮箱设置位置在设置->账户,再在如下图内容出开启,然后要花一毛钱发条短信生成授权码,记着就行。
网易开启服务的过程也差不多,不过不要钱,授权码还可以自定!
2. 然后我们要在网上下载javamail相关的jar包,导入到所创的项目里。所用的包如下:
javax.activation.jar
common-email-1.2.jar
java-mail-1.4.4.jar
由于这些包是之前导入的,我也懒得去找,就不放上链接了,网上都有资源。
3. 先附上正确代码,然后我再讲那些我遇到的坑。
public class send_email {public static String Emailaccout=""; //发送邮箱public static String Emailpassword=""; 授权码public static String myEmailSMTPHost = "smtp.qq.com";public static void send_mail(String receiveMailAccount) throws Exception { //创建参数配置, 用于连接邮件服务器的参数配置 Properties props = new Properties(); // 参数配置 props.put("mail.smtp.host", "host"); props.put("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求) props.put("mail.host", myEmailSMTPHost); // 发件人的邮箱的 SMTP 服务器地址 props.put("mail.smtp.auth", "true"); // 请求认证,参数名称与具体实现有关 //创建ssl安全连接 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.ssl.socketFactory", sf); //根据配置创建会话对象, 用于和邮件服务器交互 Session session = Session.getDefaultInstance(props); session.setDebug(true); // 设置为debug模式, 可以查看详细的发送 log //创建一封邮件 MimeMessage message = createMimeMessage(session,Emailaccout, receiveMailAccount); // 根据 Session 获取邮件传输对象 Transport transport = session.getTransport(); //使用 邮箱账号 和 密码 连接邮件服务器 transport.connect(myEmailSMTPHost,Emailaccout,Emailpassword); System.out.println("16"+message.getAllRecipients()+"eeee"); //发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送
人, 密送人 try{ transport.sendMessage(message, message.getAllRecipients()); }catch(MessagingException ex){ ex.printStackTrace(); } transport.close(); } public static MimeMessage createMimeMessage(Session session, String sendMail, String receiveMail) throws Exception { MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress(sendMail)); //收件人可以为多个 message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail)); message.setSubject("欢迎蛤蛤","UTF-8"); message.addHeader("Disposition-Notification-To","1"); //message.setText("这是一封自己写程序发的邮件,如果你收到了,请不要回复!无意冒犯!"); Multipart mainPart = new MimeMultipart(); BodyPart html = new MimeBodyPart(); html.setContent("这个世界啊,还是亦可赛艇啊!", "text/html; charset=utf-8"); mainPart.addBodyPart(html); message.setContent(mainPart); message.setSentDate(new Date()); message.saveChanges(); return message; } public static void main(String[] args) throws Exception{ send_mail("接受邮箱"); //可以使多个 }}中间发送的邮件内容由于懒,就随便写了点,格式排版什么的,自己设定就好。
在下面的一篇博客里,详细讲解了在使用javamail过程中遇到的那些坑,如果还没有解决发送邮件的问题,可以看一下哦。传送门:javamail使用时遇到的那些坑
0 0
- javamail发送邮件
- 用javamail 发送邮件
- javamail发送邮件--sendmail
- JAVAMAIL发送邮件方法
- JavaMail发送邮件
- JavaMail发送邮件
- JavaMail发送邮件例子
- 用javamail发送邮件
- 用Javamail发送邮件
- JavaMail直接发送邮件
- JavaMail发送邮件
- JavaMail 发送验证邮件
- 使用JavaMail发送邮件
- javaMail发送邮件实例
- 用javamail 发送邮件
- JavaMail 实现邮件发送
- javamail邮件发送问题
- javamail发送邮件
- Android开发之全局异常捕获完美闪退
- IDEA 旗舰版 使用Maven创建Web工程 并部署tomcat
- 验证码小练习强制将int类型转化为char类型遇到的小问题
- 设置BAT批处理窗口显示颜色
- 使用Redis Desktop Manager连接ubuntu虚拟机上的redis-sever
- javamail发送邮件
- 设计模式列表
- Django ManyToManyField 跨越中间表查询
- 校招之路
- Win7+CUDA8.0+VS2015+Theano0.8配置GPU加速环境
- Java设计模式——单例模式
- C#使用反射将DataTable转换List<T>
- 贪心(1)--hdu3979(贪心进阶)
- 20个常用正则,让你少写1000行代码