簡體   English   中英

無法將Java郵件發送到SMTP主機

[英]Can't send java mail to smtp host

我在camunda環境中有此類(並且我在camunda建模器中使用此類作為服務任務):

public class SendMails implements JavaDelegate{

    String  text,from,password;
    Object jsonObject1=new JSONObject();
 public static void send( final String from, final String password,String to,String sub,String msg){  
     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");    
     //get Session   
     Session session = Session.getDefaultInstance(props,    
      new javax.mail.Authenticator() {    
      protected PasswordAuthentication getPasswordAuthentication() {    
      return new PasswordAuthentication(from,password);  
      }    
     });    
     //compose message    
     try {    
      MimeMessage message = new MimeMessage(session);    
      message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));    
      message.setSubject(sub);    
      message.setText(msg);    
      //send message  
      Transport.send(message);    
      System.out.println("message sent successfully");    
     } catch (MessagingException e) {throw new RuntimeException(e);}    

}  

    public void execute(DelegateExecution execution) throws Exception {

        text = execution.getVariable("selectedDocuments").toString();
        send("demo@camunda.org","xxxxx","test@gmail.com","hello javatpoint","How r u?");  

        }
    }

這是我的POM:

<dependencies>  
 <dependency>
      <groupId>org.camunda.bpm</groupId>
      <artifactId>camunda-engine</artifactId>
      <scope>provided</scope>
    </dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.0.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
    <groupId>com.sun.mail</groupId>
    <artifactId>javax.mail</artifactId>
    <version>1.5.5</version>
</dependency> 
<!-- https://mvnrepository.com/artifact/javax/javaee-api -->
<dependency>
    <groupId>javax</groupId>
    <artifactId>javaee-api</artifactId>
    <version>8.0</version>
    <scope>provided</scope>
</dependency>

    </dependencies>

但是當我嘗試發送消息時,出現如下錯誤:

引起原因:com.sun.mail.util.MailConnectException:無法連接到主機,端口:smtp.gmail.com,465; 超時-1; 嵌套的異常是:java.net.ConnectException:連接超時:在com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java)上的com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:2100)連接:699)在javax.mail.Service.connect(Service.java:388)在javax.mail.Service.connect(Service.java:246)在javax.mail.Service.connect(Service.java:195)在javax .mail.Transport.send0(Transport.java:254)(位於javax.mail.Transport.send(Transport.java:124))位於ge.psda.camunda.sendMails.SendMails.send(SendMails.java:40)...另外208個

PS我在郵件中啟用了較少的安全保護,但是這無濟於事我應該更改什么才能發送郵件?

您必須提供發件人的憑據。 您已為gmail配置(屬性)。 實際上,您已經從發送電子郵件的位置為smtp服務器配置了屬性。

和您需要的依賴項:

<dependencies>
    <dependency>
        <groupId>javax.mail</groupId>
        <artifactId>mail</artifactId>
        <version>1.4</version>
    </dependency>

    <dependency>
        <groupId>javax.activation</groupId>
        <artifactId>activation</artifactId>
        <version>1.1.1</version>
    </dependency>

</dependencies>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM