कनेक्ट करें मुझे जावामेल एपीआई का उपयोग करने के लिए एक एप्लिकेशन प्राप्त करने में समस्या हो रही है ताकि हम कुछ फ़ाइलों को अधिक स्वचालित तरीके से भेजने के लिए उपयोग कर सकें। मैं जावा और नेटबीन के लिए बहुत नया हूं, लेकिन अन्य भाषाओं में प्रोग्राम किया है, इसलिए अगर मुझे जावा और नेटबीन के लिए थोड़ा खो गया लगता है तो कृपया मुझे माफ़ कर दें।आईमेल के लिए जावामेल एपीआई - java.net.SocketException: अनुमति अस्वीकार:
मैं यह त्रुटि
java.net.SocketException बार आ रही है: अनुमति अस्वीकृत: कनेक्ट
जब स्थानीय मेल सर्वर से कनेक्ट करने की कोशिश कर रहा। मैंने जीमेल के एसएमटीपी सर्वर के माध्यम से उसी कोड के साथ सफलतापूर्वक मेल भेजा है और यूजरनेम, पासवर्ड और पोर्ट बदल रहा है। मैं अपने सर्वर को सफलतापूर्वक टेलनेट करने में सक्षम था और पोर्ट 25 से 220 प्रतिक्रिया प्राप्त करता था। मेरे पास एक बैच फ़ाइल भी है जो चलती है और यह सफलतापूर्वक हमारे स्थानीय सर्वर के माध्यम से ई-मेल भेजती है। कोई विचार या विचार क्यों कि मैं JavaMail
से कनेक्ट नहीं कर सकता हूं?
यहां वह कोड है जो ई-मेल भेजता है।
स्रोत कोड: दो अपवाद बयानों से
public void sendEmail(String customerNumber, ArrayList fileList){
String from = "xxxx";
String username = "xxxx";
String to = "xxxx";
String host = "10.1.1.6";
String pwd = "xxxx";
String port = "25";
Properties props = System.getProperties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.port", port);
props.put("mail.smtp.user", username);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.debug", "true");
props.put("mail.smtp.socketFactory.port", port);
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
Session session = Session.getInstance(props, null);
session.setDebug(true);
MimeMessage message = new MimeMessage(session);
try{
message.setFrom(new InternetAddress(from));
message.setRecipients(Message.RecipientType.TO, to);
message.setSubject("Electronic Invoices");
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setText("Electronic Invoices");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
for(int i = 0; i < fileList.size(); i++){
messageBodyPart = new MimeBodyPart();
String fileName = (String) fileList.get(i);
DataSource source = new FileDataSource(fileName);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(fileName);
multipart.addBodyPart(messageBodyPart);
}
message.setContent(multipart);
Transport tr;
tr = session.getTransport("smtp");
tr.connect(host, username, pwd);
tr.sendMessage(message, message.getAllRecipients());
jTextArea2.append("Mail Sent Successfully");
tr.close();
} catch(Exception e){
jTextArea2.append("sendEmail()::" + System.getProperty("line.separator") + e + System.getProperty("line.separator"));
System.out.println(e.getMessage());
System.out.println(e.getCause());
}
}
आउटपुट:
DEBUG: setDebug: JavaMail version 1.4.5
DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "10.1.1.6", port 25, isSSL false
Could not connect to SMTP host: 10.1.1.6, port: 25
java.net.SocketException: Permission denied: connect
जेडीके 7? इस लड़के को जांचें http://stackoverflow.com/a/7478027/643500 –
मैंने अपनी NetBeans कॉन्फ़िगरेशन फ़ाइल में -Djava.net.preferIPv4Stack = true जोड़ा, लेकिन मुझे अभी भी त्रुटि है। यह अभी भी मुझे एक जीमेल खाते से भेजने की अनुमति देता है। तेज प्रतिक्रिया के लिए धन्यवाद। – John
यह वीएम विकल्पों में जाना चाहिए। यह पुष्टि करने का एक और तरीका है कि नेटबीन्स में यह एक ही मुद्दा है, प्रोजेक्ट> गुण> पुस्तकालयों पर राइट क्लिक करें और जेडीके 6 जावा प्लेटफार्म चुनें (यदि आपके पास यह नहीं है तो इंस्टॉल करें)। साफ करें, फिर फिर कोशिश करें। यह समस्या के रूप में इस मुद्दे को खत्म कर देगा। –