【问题标题】:Sending mail through smtp and gettin error?通过 smtp 发送邮件并收到错误?
【发布时间】:2016-01-04 08:27:27
【问题描述】:

这是我的代码。我收到以下异常。

final String username = "mymail@gmail.com";
final String password = "mypass";

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

Session session = Session.getInstance(props, new javax.mail.Authenticator() {
    protected javax.mail.PasswordAuthentication getPasswordAuthentication() {
        return new javax.mail.PasswordAuthentication(username, password);
    }
});
try {
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("fazeen.ahmad93@gmail.com"));
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("fazeenahmad1993@gmail.com"));
    message.setSubject("Testing subject");

    BodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText("test body");

    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);
    messageBodyPart = new MimeBodyPart();
    message.setContent(multipart);

    Transport.send(message);

我得到的异常:

Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. pl7sm1333988wic.4 - gsmtp
  at Test.main(Test.java:200)
       Caused by: javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. pl7sm1333988wic.4 - gsmtp
  at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
  at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
  at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
  at javax.mail.Transport.send0(Transport.java:169)
  at javax.mail.Transport.send(Transport.java:98)
  at Test.main(Test.java:195)

【问题讨论】:

    标签: java smtp sendmail


    【解决方案1】:

    我认为您缺少将以下保险丝添加到您的属性中..

    mail.smtp.starttls.required=true
    

    【讨论】:

    • 我使用的是旧版本的 mail.jar 这就是原因
    【解决方案2】:

    使用此运行代码发送邮件

    import java.util.Properties;
    import javax.mail.Message;
    import javax.mail.MessagingException;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeMessage;
    
    /*
     * To change this license header, choose License Headers in Project Properties.
     * To change this template file, choose Tools | Templates
     * and open the template in the editor.
     */
    
    /**
     *
     * @author xyz
     */
    public class MailSend {
        public static void main (String [] args){
             String to="xyz@gmail.com";//change accordingly
    
    //Get the session object
      Properties props = new Properties();
      props.put("mail.smtp.host", "smtp.gmail.com");
      props.put("mail.smtp.socketFactory.port", "465");
      props.put("mail.smtp.socketFactory.class",
                "javax.net.ssl.SSLSocketFactory");
      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_address","password");//change accordingly
       }
      });
    
    //compose message
      try {
       MimeMessage message = new MimeMessage(session);
       message.setFrom(new InternetAddress("email_address"));//change accordingly
       message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
       message.setSubject("Welcome!!");
    
        message.setText("Hiii buddy ");
    
    
    
       Transport.send(message);
    
       System.out.println("message sent successfully");
    
      } catch (MessagingException e) {throw new RuntimeException(e);}
    
     }
        }
    

    如果您的机器上没有 smtp 服务器,则下载它并在下载后运行。

    试试这个

    【讨论】:

      【解决方案3】:

      我使用的是旧版本的 ma​​il.jar 使用这个 jar ma​​il-1.4.7.jar 并在此之后进行身份验证 打开帐户访问:@ 987654321@(开启) 如果使用 google smtp

      ,这就是问题所在

      【讨论】:

        猜你喜欢
        • 2014-03-16
        • 2014-03-05
        • 1970-01-01
        • 2012-09-29
        • 2021-09-13
        • 2010-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多