Я не могу отправить письмо используя javamail

Я использую javamail, я пытался использовать аутентификацию или без, но это не работает. есть кто-то, кто может помочь?

 private boolean InitMailer(String sSMPTGateWay)
{
    try
    {
        oProps=new Properties();
        oProps.put("mail.smtp.host",sSMPTGateWay);
        //oProps.put("mail.smtp.socketFactory.port", "465");
        //oProps.put("mail.smtp.port", "465");
        oProps.put("mail.smtp.starttls.enable", "true");

      //  oProps.put("mail.smtp.socketFactory.class",
    //      "javax.net.ssl.SSLSocketFactory");
    oProps.put("mail.smtp.auth", "true");
    //oProps.put("mail.smtp.port", "465");

        Authenticator auth = new javax.mail.Authenticator() {
                            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication("mmyemail@gmail.com","mypassword");
            }
        };

        oSession=Session.getInstance(oProps,auth);
        oSession.setDebug(true);
        oTransport=oSession.getTransport(oSession.getProvider("smtp"));
        System.out.println("tento di connettermi");
        oTransport.connect();
        System.out.println("connesso?");
        if(!oTransport.isConnected())
        {
            ErrorLog.warningLog("MService: MService(): Mail Server "+sMailGateWay+" non operativo. Tento un altro Gateway.");
            return false;
        }
   }
    catch(Exception e)
    {
        e.printStackTrace();
        ErrorLog.warningLog("MService: MService(): Mail Server "+sMailGateWay+" non operativo. Tento un altro Gateway.");
        return false;
    }
    return true;
}

private void sendMessage(String sFrom,String sTo,String sSubject,String sBody) throws Exception
{
        if(Constants.ENABLE_MAIL_SERVICE.equals("NO"))
        {
            ErrorLog.warningLog("Tentativo di invio, Mail disabilitata: \n From:"+sFrom+"\n To:"+ sTo +"\n Subject: "+sSubject + "\n Body:\n"+sBody);
            return;
        }
        if(Constants.ENABLE_MAIL_SERVICE.equals("TEST"))
            sTo=Constants.TEST_MAIL;

        MimeMessage msg=new MimeMessage(oSession);
        msg.setFrom(new InternetAddress(sFrom));
        msg.addRecipient(Message.RecipientType.TO,new InternetAddress(sTo));
        msg.setSubject(sSubject,"iso-8859-1");
        msg.setSentDate(new Date());
        msg.setText(sBody,"iso-8859-1");
        System.out.println("mando mex");
        oTransport.send(msg);
}

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

220 smtp.gmail.com ESMTP q4sm9246160wjk.24 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 25

EHLO Michele
250-smtp.gmail.com at your service, [79.36.174.226]
250-SIZE 35882577
250-8BITMIME
250-STARTTLS
250-ENHANCEDSTATUSCODES
250-PIPELINING
250 SMTPUTF8
DEBUG SMTP: Found extension "SIZE", arg "35882577"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "SMTPUTF8", arg ""
connesso?
NOOP
250 2.0.0 OK q4sm9246160wjk.24 - gsmtp
new MSERVICE
starcinema@gmail.com
Sending from (starcinemafe@gmail.com) to (starcinema@gmail.com) subject (Registrazione Star Cinema) html(false).
mando mex1
mando mex
NOOP
250 2.0.0 OK q4sm9246160wjk.24 - gsmtp

3 ответа

Исправьте все эти распространенные ошибки JavaMail, и вы получите дальнейшее. В частности, вызовите oTransport.sendMessage вместо oTransport.send.

Иногда, когда вы используете локальный SMTP-сервер, ваш интернет-провайдер блокирует порт 25

Если вы используете SMTP-сервер, предоставленный хост-провайдером, вам необходимо аутентифицировать имя пользователя и пароль. Класс javax.mail.PasswordAuthentication используется для аутентификации пароля.

Попробуйте изменить properties.put("mail.smtp.port", "25");

в properties.put("mail.smtp.port", "587");// 465 also option

проверьте, если вы не получаете никакого решения ошибки почты Java

Ошибка, которую вы публикуете о свойствах. Поменяй на это.

    oProps.put("mail.smtp.auth", "true");
    oProps.put("mail.smtp.starttls.enable", "true");
    oProps.put("mail.smtp.host", "smtp.gmail.com");
    oProps.put("mail.smtp.ssl.trust", "smtp.gmail.com");
    oProps.put("mail.smtp.port", "587");
Другие вопросы по тегам