阿里云
发表主题 回复主题
  • 1502阅读
  • 4回复

[基础常识]通过javamail,用免费阿里云邮箱账号发邮件

级别: 论坛版主
发帖
13200
云币
30214

环境:Debian9, OpenJDK-8,tomcat-8.5,javamail-1.16.1 >#)^4-e  
gY=nU,;  
过程: qVx4 t"%L>  
/MosE,7l  
1. apt update && apt upgrade && apt autoremove # 更新软件 ?qO_t;:0>  
.Q>.|mu  
2. apt install openjdk-8-jdk # 安装 openjdk-8 "6FZX~]s!  
u?&P6|J&  
3. apt install libservlet3.1-java # 安装 Java Servlet 和 JSP 库 VK[^v;  
 &)T5V  
4. mkdir -p /var/lib/tomcat8/webapps/ROOT/WEB-INF/lib # 创建测试lib目录 Xt_8=Q  
dNUi|IYm$  
5. cd /var/lib/tomcat8/webapps/ROOT/WEB-INF/lib && wget https://github.com/javaee/javamail/releases/download/JAVAMAIL-1_6_1/javax.mail.jar # 下载javamail-1.6.1到lib目录中 B#OnooJI  
-2{NI.-Xd  
6. vi /var/lib/tomcat8/webapps/ROOT/javamail.jsp # 创建测试发邮件表单 javamail.jsp,内容如下,此例是通过连接smtp.aliyun.com 的 465端口,账户名是 anqunhe@aliyun.com L 1H!o!*  
AU OL?st  
  1. <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
  2. <%
  3. //homepage:  http://cn.waterlin.org/
  4. request.setCharacterEncoding("utf-8");
  5. response.setCharacterEncoding("utf-8");
  6. response.setContentType("text/html; charset=utf-8");
  7. %>
  8. <%@ page import="javax.mail.*"%>
  9. <%@ page import="javax.mail.internet.*"%>
  10. <%@ page import="javax.activation.*"%>
  11. <%@ page import="java.util.*,java.io.*"%>
  12. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  13. <html>
  14. <head>
  15. <title>JavaMail 电子邮件发送系统</title>
  16. </head>
  17. <body>
  18. <form action="" method="post" OnSubmit="">
  19. 收件人Email:<br /> <input type="text" name="recipients"><br />
  20. 发件人Mail:<br /> <input name="frommail" type="text" size="30" /><br />
  21. 邮件标题 <br /> <input name="subject" type="text" size="50" /><br />
  22. 内容:<br /> <textarea name="contents" cols="50" rows="10"></textarea>
  23. <br /> <input type="submit" name="Submit" value="发送邮件" />
  24. <form>
  25. <%!
  26. //相应的服务器信息
  27. String host = "smtp.aliyun.com";
  28. String user = "anqunhe@aliyun.com";
  29. String password = "密码";
  30. String contentType="text/html; charset=utf-8";
  31.    private class Authenticator extends javax.mail.Authenticator
  32.    {
  33.     public PasswordAuthentication getPasswordAuthentication()
  34.     {
  35.         String un = user;
  36.         String pw = password;
  37.         return new PasswordAuthentication(un, pw);
  38.     }
  39. }
  40. %>
  41. <%
  42. String touser = request.getParameter("recipients")!=null ? request.getParameter("recipients") : "";
  43. String fromuser = request.getParameter("frommail")!=null ? request.getParameter("frommail") : "";
  44. String subject = request.getParameter("subject")!=null ? request.getParameter("subject") : "";
  45. String contents = request.getParameter("contents")!=null ? request.getParameter("contents") : "";
  46.    try {
  47.     Properties props = new Properties();
  48.     props.put("mail.smtp.auth","true"); //是否验证
  49.     props.put("mail.smtp.host", host);
  50.     props.put("mail.smtp.user", user);
  51.     props.put("mail.smtp.password",password);
  52.     props.put("mail.smtp.ssl.enable","true");
  53.     props.put("mail.smtp.ssl.enable", "true");
  54.     props.put("mail.smtp.port","465");//Gmail 的端口号
  55.     
  56.     //根据邮件服务器是否需要 ttl 验证选用
  57.     //props.put("mail.smtp.starttls.enable","true");
  58.     
  59.     boolean sessionDebug = false;
  60.     Authenticator auth = new Authenticator();
  61.     //Session mailSession = Session.getDefaultInstance(props, auth); //有时可能被拒绝
  62.     Session mailSession = Session.getInstance(props,auth); //用户验证;
  63.     //Session mailSession = Session.getInstance(props);
  64.     //mailSession.setDebug(sessionDebug);
  65.     Message msg = new Mime2Message(mailSession);
  66.     msg.setFrom(new InternetAddress( fromuser ));
  67.     msg.setRecipient(Message.RecipientType.TO, new InternetAddress( touser ));
  68.     msg.setSubject( "邮件标题:" +subject);
  69.     //((Mime2Message)msg).setSubject(subject, "GBK"); //设置中文标题
  70.     msg.setSentDate(new Date());
  71.     String text =  contents + "<hr>javamail.jsp 发送认证邮件<b>测试</b>。";
  72.     msg.setContent(text, contentType);
  73.     Transport transport = mailSession.getTransport("smtp");
  74.     transport.connect(host,user,password);
  75.     transport.send( msg );
  76. %>
  77.    <p>你的邮件已发送,<a href="./javamail.jsp">请返回。</></p>
  78.    <%
  79.    }
  80.    catch (Exception m) {
  81.         
  82.    }
  83.    %>
  84.    </body>
  85.    </html>
x&@. [FJhO  
6k|o<`~,  
7. 填写好表单,测试发邮件。成功(在垃圾箱中)。 -r@fLkwg  
^KM' O8  
RXxi7^ U  
V|13%aE_v  
参考: KLBU8%  
  • http://cn.waterlin.org/Java/JavaMail.html
  • https://stackoverflow.com/questions/39760773/tomcat-8-cannot-load-website
关键词: javamail
Debian 是一个自由的操作系统 (OS),提供您安装在计算机上使用。操作系统就是能让您的计算机工作的一系列基本程序和实用工具。
级别: 程序猿
发帖
393
云币
1242
只看该作者 沙发  发表于: 05-12
版主,请问:环境:windows2012,asp+access,该如何通过javamail使用SMTP发信
[ 此帖被痛而不言之在2018-05-12 12:07重新编辑 ]
级别: 新人
发帖
4
云币
11
只看该作者 板凳  发表于: 06-06
Re通过javamail,用免费阿里云邮箱账号发邮件
沙发
级别: 论坛版主
发帖
13200
云币
30214

只看该作者 地板  发表于: 06-07
回 1楼(痛而不言之) 的帖子
您好, "~E[)^ANxD  
L93l0eEt  
如果是asp的,不适合javamail的使用环境喔。 ilK-?@u+  
l6(-I Tb  
到时我为您找找asp环境里使用smtp的例子。
本帖最近评分记录: 1 条评分 云币 +4
痛而不言之 云币 +4 你是我偶像 06-07
Debian 是一个自由的操作系统 (OS),提供您安装在计算机上使用。操作系统就是能让您的计算机工作的一系列基本程序和实用工具。
级别: 程序猿
发帖
393
云币
1242
只看该作者 4楼 发表于: 06-07
回 3楼(dongshan8) 的帖子
在此先谢谢版主啊
[ 此帖被痛而不言之在2018-06-07 14:54重新编辑 ]
发表主题 回复主题
« 返回列表上一主题下一主题

限100 字节
批量上传需要先选择文件,再选择上传
 
验证问题: ECS是阿里云提供的什么服务? 正确答案:云服务器
上一个 下一个