Kal*_*ala 17 java security jakarta-mail
我正在运行一个非常基本的Javamail程序来尝试发送电子邮件.这是带main()的独立程序.一旦我开始工作,我计划在一个在tomcat下运行的servlet中使用Javamail.
运行此程序时,我收到AUTH LOGIN失败错误.我尝试了几种不同的属性设置,但都没有解决问题.
然后我在SO上发现了一条帖子,建议降低我的Google帐户所需的安全级别.当我降低安全设置时,身份验证成功.
当然,我立即回到Google帐户的更高安全级别.
我的问题是,如何使我的应用程序更安全,以便gmail不拒绝身份验证?
程序代码如下所示.该程序与SO上的许多其他Javamail问题中的代码非常相似.
TryJavamail.java
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Properties;
import javax.mail.*;
import javax.mail.internet.*;
public class TryJavamail {
public static void main(String args[]) throws MessagingException {
String submitName = "John Doe";
String submitEmail = "from@example.com";
String submitMessage = "This is the message";
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.host", "smtp.gmail.com");
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.ssl.enable", "true");
props.setProperty("mail.smtp.port", "465");
Session session = Session.getInstance(props, null);
session.setDebug(true);
Message message = new MimeMessage(session);
message.setSubject("Message from myapp website submit");
message.setText(submitName + "; " + submitMessage);
Address toAddress = new InternetAddress(submitEmail);
message.setRecipient(Message.RecipientType.TO, toAddress);
Transport transport = session.getTransport("smtp");
transport.connect("smtp.gmail.com", "---userid---", "---password---");
transport.sendMessage(message, message.getAllRecipients());
transport.close();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11373 次 |
| 最近记录: |