Как исправить это исключение? (получение исключения при отправке почты из программы jsp на учетную запись gmail) - PullRequest
0 голосов
/ 04 декабря 2009

ОБНОВЛЕНИЕ: Код работает, когда я использую его в качестве Java-программы. И когда я запускаю его как jsp, это дает следующее исключение. java.security.AccessControlException: доступ запрещен (java.security.SecurityPermission insertProvider.SunJSSE)

Я разместил код ниже. Я получил следующее исключение. Как решить эту проблему? Я уже искал в гугле но не нашел решения :( ** java.security.AccessControlException:

<%@ page import="java.security.*" %>
    <%@ page import="javax.mail.internet.*" %>
<%@ page import="javax.mail.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<html>
<body>
<%
String name=request.getParameter("name");
String from=request.getParameter("mail");
String message1=request.getParameter("msg");
try{   
String toAddress="mymailid@gmail.com";
String fromAddress=from;
String fromName=name;
String messageSubject="feedback"; 
String messageBody1=message1;
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
  Properties props=new Properties();  
  props.put("mail.smtp.host","smtp.gmail.com"); 
       props.put("mail.debug","true"); 
    props.put("mail.smtp.starttls.enable","true"); 
Session session1 = Session.getDefaultInstance(props,new javax.mail.Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("mailid@gmail.com", "Password");
}
});
  Message message=new MimeMessage(session1);
  message.setFrom(new InternetAddress( fromAddress, fromName));
  message.setRecipient(Message.RecipientType.TO,new InternetAddress( toAddress));
  message.setSubject( messageSubject);
  message.setText( messageBody1);
  message.setSentDate(new Date());
  Transport.send(message);
 }
catch(Exception e)
{out.println(e);
     }    
%>
</body>
</html>

Помогите мне исправить эту ошибку

Ответы [ 3 ]

0 голосов
/ 04 декабря 2009

Я отправляю почту, используя JavaMail через smtp Gmail из моего приложения, и оно работает нормально. Я не использую какой-либо провайдер безопасности, я просто добавляю эти свойства в свойства сообщения:

props.put("mail.smtp.starttls.enable","true"); 
props.put("mail.smtp.auth","true"); 
props.put("mail.mail.smtp.ssl.enable","true"); 

Вот и все. Почта отправляется без проблем. Однако обратите внимание, что Gmail, кажется, хочет, чтобы вы заходили на страницу веб-почты время от времени, или он перестанет принимать вашу почту через smtp (я не уверен, что на 100% это произошло со мной однажды).

0 голосов
/ 04 декабря 2009

Когда я пытаюсь этот сниппнет в Java, он работает. Когда я конвертирую это в jsp с небольшими изменениями, как показано в коде, это показывает исключение

java.security.AccessControlException: доступ запрещен (java.security.SecurityPermission insertProvider.SunJSSE)

не возможно ли отправить письмо с jsp? я впервые отправляю почту с jsp. Я успешно запустил эту программу в Java.

0 голосов
/ 04 декабря 2009

Я не думаю, что добавление поставщика безопасности требуется для отправки почты. Также с помощью com.sun. занятия вообще нежелательны.

Здесь и здесь - способы отправки почты с использованием JavaMail.

Но я рекомендую commons-mail .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...