我在名为clave.jsp的文件中有以下代码:
@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.detelexia.bbdd.Datos" %>
<%@ page import="com.detelexia.web.Utils" %>
<%@ page import = "java.text.*" %>
<%@ page import="java.io.*,java.util.*,javax.mail.*, javax.mail.Service"%>
<%@ page import="javax.mail.internet.*,javax.activation.*"%>
<%@ page import="javax.servlet.http.*,javax.servlet.*" %>
[....]
<div><a href="javascript:void();" onclick="email(); return false;" class="button button-alt">ENVIAR</a></div>
<script>
function email()
{
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.from","existingdirection@gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.debug", "true");
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("existingdirection@gmail.com", "correctpassword");
}
});
try {
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO,
"existingdirection@gmail.com");
msg.setSubject("JavaMail hello world example");
msg.setSentDate(new Date());
msg.setText("Hello, world!\n");
Transport.send(msg);
} catch (MessagingException mex) {
}
}
</script>
[....]
代码基于此处显示的第二个代码TLS issue when sending to gmail through JavaMail,但是虽然据说可行,但我无法使其工作。我还测试了输入root作为用户和密码,并传递用户和密码,如图所示,但它不起作用。
但它似乎没有发送一些东西,也许是接收收件箱无法得到消息,但我对此表示怀疑。
知道我做错了什么?我试图检查那些代码和更多的代码,但它们似乎都没有用,我不知道为什么,一切看起来都正确。
当然,页面的编辑工作非常顺利。
感谢您的帮助。
答案 0 :(得分:0)
嗯,我们从哪里开始?
首先,您必须了解桌面应用程序之间的区别,在该应用程序中,通过单击,双击,按键等事件触发操作。还有一个Web应用程序,您需要表单,请求,响应,如果你可以使用ajax,以及事件+ ajax(它可以让你了解请求,响应和表单)。
我认为您需要检查Web应用程序开发的基础知识。就像表达层的请求/响应生命周期,表单,javascript,css和html一样。然后,您需要检查Java的基础知识(JSP,servlet,过滤器,类,对象)。根据您想要做的事情(MVC,HMVC,DAO,DI / IoC,Observable Observer),了解设计模式或至少如何/何时使用/实现它们将是一件好事。
希望它有所帮助!
此致 EFRA
答案 1 :(得分:-1)
尝试下面给出的代码来发送电子邮件,但是将此代码用于scriptlet&lt;%code goes here%&gt;不在JavaScript或任何其他客户端脚本函数
我希望它能奏效。
String host="smtp.gmail.com";
final String user="it1006813052@gmail.com";//change accordingly
final String password="wooofqrzcjkjdmlaezr";//change accordingly
String to="it1006813052@gmail.com";//change accordingly
//Get the session object
try {
Properties props = new Properties();
props.put("mail.smtp.user",user);
props.put("mail.smtp.password", password);
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", "25");
props.put("mail.debug", "true");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.EnableSSL.enable","true");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user,password);
}
});
//Compose the message
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("rohan@bhediya.com"));
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
message.setSubject("whass up?");
message.setText("This is simple program of sending email using JavaMail API");
// add attatchment
MimeBodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();
messageBodyPart = new MimeBodyPart();
String file = "F:/emb3.png";
String fileName = "emb3";
DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
//send the message
Transport.send(message);
out.println("message sent successfully...");
} catch (MessagingException e) {e.printStackTrace();}
}
catch(Exception ex) { System.out.println(ex); }
如果您不想附加任何东西,可以删除附件