Matej Špilár
Matej Špilár

Reputation: 2687

transport.connect is not doing anything javamail

I would like to send emails using JavaMail. What I already have is a class that was able (few months ago send emails), but now the program stops on transport.connect(emailHost, from, fromPassword);

SendMails activity:

public class SendMails {

    final String smtpAuth = "true";
    final String starttls = "true";
    final String emailHost = "smtp.gmail.com";

    String fromEmail;
    String fromPassword;
    List<String> toEmailList;
    String emailSubject;
    String emailBody;
    String emailPort;

    Properties emailProperties;
    Session mailSession;
    MimeMessage emailMessage;

    private EmailAccount account;
    private EmailAuthenticator authenticator;

    public SendMails() {

    }

    public SendMails(String fromEmail, String fromPassword,
            List<String> toEmailList, String emailSubject, String emailBody,
            String emailPort) {
        this.fromEmail = fromEmail;
        this.fromPassword = fromPassword;
        this.toEmailList = toEmailList;
        this.emailSubject = emailSubject;
        this.emailBody = emailBody;
        this.emailPort = emailPort;

        String[] splited = fromEmail.split("@");
        Log.w("SEND MAILS", splited[0] + "+" + splited[1]);
        account = new EmailAccount(splited[0], fromPassword, splited[1]);
        authenticator = new EmailAuthenticator(account);
        Log.w("SENDMAILS", " " + emailPort);
        emailProperties = System.getProperties();
        emailProperties.put("mail.smtp.port", this.emailPort);
        emailProperties.put("mail.smtp.auth", smtpAuth);
        emailProperties.put("mail.smtp.starttls.enable", starttls);
    }

    public MimeMessage createEmailMessage() throws AddressException,
            MessagingException, UnsupportedEncodingException {

        mailSession = Session.getDefaultInstance(emailProperties, null);
        emailMessage = new MimeMessage(mailSession);

        emailMessage.setFrom(new InternetAddress(fromEmail, fromEmail));
        for (String toEmail : toEmailList) {
            Log.i("GMail", "toEmail: " + toEmail);
            emailMessage.addRecipient(Message.RecipientType.TO,
                    new InternetAddress(toEmail));
        }

        emailMessage.setSubject(emailSubject);
        // emailMessage.setContent(emailBody, "text/html");// for a html email
        emailMessage.setText(emailBody);// for a text email
        Log.i("GMail", "Email Message created.");
        return emailMessage;
    }

    public void sendEmail() throws AddressException, MessagingException {
        Transport transport = mailSession.getTransport("smtp");
        Log.i("GMail", "All: " + emailHost + " " + fromEmail + " "
                + fromPassword + " " + emailMessage.toString()+ " " + fromEmail.split("@")[0].toString()); 
        String from = fromEmail.split("@")[0].toString();
        Log.i("GMail", "From: " + from); 
        try {
            transport.connect(emailHost, from, fromPassword);
        } catch (Exception e) {
            e.printStackTrace();
        }
        Log.i("GMail", "allrecipients: " + emailMessage.getAllRecipients());
        transport.sendMessage(emailMessage, emailMessage.getAllRecipients());
        transport.close();
        Log.i("GMail", "Email sent successfully.");
    }

}

The last log is Log.i("GMail", "From: " + from); and Log.i("GMail", "allrecipients: " + emailMessage.getAllRecipients()); is never shown ...also no exceptions are thrown ..

Thanks a lot :)

//EDIT

03-24 22:49:00.090: I/System.out(12018): DEBUG: setDebug: JavaMail version 1.4.7
03-24 22:49:00.190: I/System.out(12018): DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc.,1.4.7]
03-24 22:49:00.220: I/System.out(12018): DEBUG SMTP: useEhlo true, useAuth true
03-24 22:49:00.220: I/System.out(12018): DEBUG SMTP: trying to connect to host "smtp.tuke.sk", port 465, isSSL false

Upvotes: 0

Views: 1053

Answers (1)

Bill Shannon
Bill Shannon

Reputation: 29971

Add mailSession.setDebug(true); What does the output show?

See the JavaMail FAQ entries on debugging connection problems.

Upvotes: 1

Related Questions