2017-08-17 2 views
1

Ich bin sicher, dass viele die gleiche Frage gestellt haben, aber ich kann keine Antwort finden, die umfassend ist. Wir betreiben eine Web-App (myapp.com) auf einer EC2-Instanz in der Region Sydney. Die App sendet E-Mails über AWS SES. Da SES in Sydney nicht verfügbar ist, haben wir SES in Oregon konfiguriert. Wir haben die SMTP-Anmeldeinformationen generiert und unsere Springboot-Anwendung so konfiguriert, dass sie mit diesen Anmeldeinformationen E-Mails versendet. Wir können die E-Mail senden und die E-Mail wird erfolgreich zugestellt, aber es geht in den SPAM-Ordner. Die E-Mail von der Adresse ist: [email protected] Wir haben den Domain-Namen in der Konsole SES prüfen Wir die [email protected] E-Mail-Adresse in der SES-Konsole DKIM auch überprüft haben, eingeschaltet und überprüftenAWS SES-E-Mails gehen immer auch nach Überprüfung auf Spam

Wir sind jedoch nicht sicher, warum die E-Mail weiterhin in den SPAM-Ordner geliefert wird. Wenn ich die RAW-E-Mail-Nachricht sah, kann ich den SPF-Header sehen: SPF: NEUTRAL mit IP xx.xx.xx.xxx Ich habe keinen SPF-Datensatz in meinem DNS-Namen konfiguriert, aber wie ich es verstehe ich nicht muss, weil ich SES SMTP-Server und nicht benutzerdefinierte MAIL FROM verwenden.

Ich bin verloren, warum die E-Mail an SPAM geliefert wird. Kann jemand helfen?

+1

Probieren Sie einige Online-Spam-Tester wie http://www.isnotspam.com/ zum Beispiel. – Veve

Antwort

1

Das Problem wurde behoben. Ich bin mir nicht sicher, was genau passiert ist, aber bei der Verwendung von SpringBoot JavaMailSenderImpl zum Senden von E-Mails mit AWS SES wurden nicht alle E-Mails mit DKIM signiert (keine DKIM-Header in den ausgehenden E-Mails). Dies führte dazu, dass einige SMTP-Server unsere E-Mails als SPAM behandelten.

Ich habe das Problem gelöst, indem ich Java Mail API (javax.mail) verwendet habe, um E-Mails zu senden. Sobald ich das gemacht habe, werden alle E-Mails mit dem DKIM-Header geliefert und keiner von ihnen ging in den SPAM-Ordner Google Mail und Outlook).

Wieder bin ich mir nicht sicher, warum SpringBoot JavaMailSenderImpl das Problem verursacht hat. Ich verstehe, dass das JavaMailSenderImpl Java Mail hinter der Szene verwendet, aber aus irgendeinem Grund enthielt keine der E-Mails den DKIM-Header.

Unten ist meine E-Mail-Absender mit Java Mail, wenn es jemand da draußen helfen soll.

  try { 
      Properties properties = new Properties(); 

      // get property to indicate if SMTP server needs authentication 
      boolean authRequired = true; 

      properties.put("mail.smtp.auth", authRequired); 
      properties.put("mail.smtp.host", "ses smtp hostname"); 
      properties.put("mail.smtp.port", 25); 
      properties.put("mail.smtp.connectiontimeout", 10000); 
      properties.put("mail.smtp.timeout", 10000); 
      properties.put("mail.smtp.starttls.enable", false); 
      properties.put("mail.smtp.starttls.required", false); 



      Session session; 
      if (authRequired) { 
       session = Session.getInstance(properties, new javax.mail.Authenticator() { 
        protected PasswordAuthentication getPasswordAuthentication() { 
         return new PasswordAuthentication("ses_username","ses_password"); 
        } 
       }); 
      } else { 
       session = Session.getDefaultInstance(properties); 
      } 

      Message message = new MimeMessage(session); 
      message.setFrom(new InternetAddress("[email protected]")); 
      message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]")); 

      message.setSubject("This is a test subject"); 
      Multipart multipart = new MimeMultipart(); 
      BodyPart htmlPart = new MimeBodyPart(); 
      htmlPart.setContent("This is test content", "text/html"); 
      htmlPart.setDisposition(BodyPart.INLINE); 
      multipart.addBodyPart(htmlPart); 
      message.setContent(multipart); 
      Transport.send(message); 

     } catch (Exception e) { 
      //deal with errors 

     } 
+0

Die Multipart-Sache half mir, das Spam-Problem loszuwerden –

Verwandte Themen