Anup KumarArya Ответов: 1

Почему я получаю значение null, сервер при запуске следующей программы отправка электронных писем отключена Java с использованием протокола SMTP


//import static com.sun.org.apache.xalan.internal.lib.ExsltDatetime.date;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;
import java.util.Properties;  
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.mail.*;  
import javax.mail.internet.*;  
  
public class SendMailBySite 
{  
        public static void main(String[] args) throws UnknownHostException {  
            try {
                //InetAddress ip=InetAddress.("www.gmail.com");
                // System.out.println(ip);
                
                String host="smtp.gmail.com";
                final String user="anupvrj261@gmail.com";//change accordingly
                final String password="9452692660";//change accordingly
                String to="anupvrj261@gmail.com";//change accordingly
                String from="anupvrj261@gmail.com";
                String subject="new mad";
                String message="hii how are you";
                boolean sessionDebug=false;
                System.out.println("1");
                
                //Get the session object
                Properties props = System.getProperties();
                props.put("mail.smpt.startt.enable","true");
                
                props.put("mail.smtp.host",host);
                props.put("mail.smtp.port", "587");
                props.put("mail.smtp.auth", "true");
                props.put("mail.smpt.starttls.required","true");
              //  props.put("mail.mail.setTLS()","true");
                java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
                
                 System.out.println("2"); 
                Session mailSession = Session.getInstance(props,null);
                mailSession.setDebug(sessionDebug);
                Message msg=new MimeMessage(mailSession);
                msg.setFrom(new InternetAddress(from));
                InternetAddress[] address={new InternetAddress(to)};
                msg.addRecipients(Message.RecipientType.TO, address);
                msg.setSubject(subject);
                Date date = null;
                msg.setSentDate(new Date());
                msg.setText(message);
                  System.out.println("3");
                Transport transport=mailSession.getTransport("smtp");
                transport.connect(host, user, password);
                  System.out.println("4");
                transport.sendMessage(msg, msg.getAllRecipients());
                  System.out.println("5");
                transport.close();
                System.out.println("Succesful");
                
                //Compose the message  
            } catch (MessagingException ex) {
                Logger.getLogger(SendMailBySite.class.getName()).log(Level.SEVERE, null, ex);
            }
  
 }  
}  


Что я уже пробовал:

когда я запускаю эту программу
ошибка:-
Apr 17, 2017 5:41:51 PM SendMailBySite main
SEVERE: null
com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.0 Must issue a STARTTLS command first. e207sm17889011pfh.121 - gsmtp

	at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1829)
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:1368)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:886)
	at SendMailBySite.main(SendMailBySite.java:54)

BUILD SUCCESSFUL (total time: 1 second)

Даже я закрыл все типы антивирусов, а также отключил настройку электронной почты как менее безопасную.

Anup KumarArya

пожалуйста, помогите мне, как только bcz 19 апреля я должен представить свой проект в моем университете.
Я старался, как мог.

Richard MacCutchan

Посмотрите на сообщение об ошибке, оно говорит вам, что вам нужно сделать.

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Это не ошибка "нулевого сервера". Это серьезная ошибка, означающая, что код не может продолжаться. Там сообщение об ошибке точно говорит вам, что делать. Вы должны попробовать прочитать его еще раз и прочитать команду STARTTLS.