it-swarm-id.com

Tidak dapat terhubung ke SMTP Host: smtp.gmail.com, port: 465, respons: -1

saat mengirim email saya mendapatkan kesalahan ini

Java.lang.RuntimeException: javax.mail.SendFailedException: Mengirim gagal; pengecualian bersarang adalah: class javax.mail.MessagingException: Tidak dapat terhubung ke SMTP Host: smtp.gmail.com, port: 465, respons: -1

kode saya adalah:

Properties props = new Properties();
props.put("mail.smtp.Host", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable","true");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");

Session session = Session.getDefaultInstance(props,
        new javax.mail.Authenticator() {
                protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication("email","password");
                }
        });

try {

        Message message = new MimeMessage(session);
        message.setFrom(new InternetAddress("email"));
        message.setRecipients(Message.RecipientType.TO,
                        InternetAddress.parse(this.to));
        message.setSubject("Testing");
        message.setText("Hey, this is the testing email.");



        Transport.send(message);

Bantuan apa pun akan dihargai.

Terima kasih sebelumnya.

18
user1900376

Anda harus mengatakan bahwa Anda menggunakan SSL:

props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

Jika Anda melewatkan sesuatu, berikut ini kode kerjanya:

String  d_email = "[email protected]",
            d_uname = "Name",
            d_password = "urpassword",
            d_Host = "smtp.gmail.com",
            d_port  = "465",
            m_to = "[email protected]",
            m_subject = "Indoors Readable File: " + params[0].getName(),
            m_text = "This message is from Indoor Positioning App. Required file(s) are attached.";
    Properties props = new Properties();
    props.put("mail.smtp.user", d_email);
    props.put("mail.smtp.Host", d_Host);
    props.put("mail.smtp.port", d_port);
    props.put("mail.smtp.starttls.enable","true");
    props.put("mail.smtp.debug", "true");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.socketFactory.port", d_port);
    props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
    props.put("mail.smtp.socketFactory.fallback", "false");

    SMTPAuthenticator auth = new SMTPAuthenticator();
    Session session = Session.getInstance(props, auth);
    session.setDebug(true);

    MimeMessage msg = new MimeMessage(session);
    try {
        msg.setSubject(m_subject);
        msg.setFrom(new InternetAddress(d_email));
        msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m_to));

Transport transport = session.getTransport("smtps");
            transport.connect(d_Host, Integer.valueOf(d_port), d_uname, d_password);
            transport.sendMessage(msg, msg.getAllRecipients());
            transport.close();

        } catch (AddressException e) {
            e.printStackTrace();
            return false;
        } catch (MessagingException e) {
            e.printStackTrace();
            return false;
        }
13
M. Usman Khan

Saya telah mengalami masalah ini ketika debugging menggunakan NetBeans, bahkan mengeksekusi file jar yang sebenarnya. Antivirus akan memblokir pengiriman email. Anda harus menonaktifkan antivirus untuk sementara saat debugging atau mengecualikan NetBeans dan file jar yang sebenarnya tidak dipindai. Dalam kasus saya, saya menggunakan Avast. 

Lihat tautan ini tentang cara Mengecualikan: Cara Menambahkan File/Pengecualian Situs Web ke dalam avast! Antivirus 2014

Ini bekerja untuk saya.

6
ronIT

Apa yang saya lakukan adalah saya berkomentar 

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

Karena ternyata untuk G-mail Anda tidak membutuhkannya. Kemudian jika Anda belum melakukan ini, Anda perlu membuat kata sandi aplikasi di G-mail untuk program Anda. Saya melakukan itu dan itu bekerja dengan sempurna. Di sini tautan ini akan menunjukkan caranya: https://support.google.com/accounts/answer/185833

1
MesamH

Dalam kasus saya, Avast Antivirus mengganggu koneksi . Tindakan untuk menonaktifkan fitur ini: .__ Avast -> Pengaturan-> Komponen -> Mail Shield (Kustomisasi) -> Pemindaian SSL -> hapus centang "Pindai koneksi SSL" . 

0
Tipxbomb

Port 465 adalah untuk "smtp over SSL".

http://javamail.kenai.com/nonav/javadocs/com/Sun/mail/smtp/package-summary.html

[...] For example, use
    props.put("mail.smtp.port", "888");
to set the mail.smtp.port property, which is of type int.

Note that if you're using the "smtps" protocol to access SMTP over SSL, 
all the properties would be named "mail.smtps.*"
0
AnFi