2013-05-14 3 views
0

아파치 제임스 서버를 사용하여 메일을 보내려고합니다. 나는 모든 제임스 구성으로 해왔다.
내 코드가 올바르게 실행됩니다. 예외는 없습니다. 그러나 메일은 전달할 수 없습니다. 여기
내 샘플 코드 나를 도울 수아파치 제임스 이메일 서버를 사용하여 메일을 보내는 방법

public void sendMail(String toField, String subject, Users user, 
           HttpServletRequest request)throws Exception { 
    // TODO Auto-generated method stub 
    logger.info("sending mail...."); 
    String loginLink = request.getScheme() +"://" + request.getServerName() 
    + ":" + request.getServerPort() + request.getContextPath()+"/auth/login"; 

    // Prepare the evaluation context 
    final WebContext ctx = new WebContext(request, request.getSession() 
            .getServletContext(),request.getLocale()); 

    ctx.setVariable("eagletId", user.getEagletId()); 
    ctx.setVariable("name", user.getFirstName()); 
    ctx.setVariable("setSentDate", new Date()); 
    ctx.setVariable("password", user.getPassword()); 
    ctx.setVariable("link",loginLink); 

    // Create a mail session 
    Properties properties = new Properties(); 
    properties.put("mail.smtp.host", "localhost"); 
    properties.put("mail.smtp.port", "25"); 
    properties.put("mail.smtp.username", "coepleap"); 
    properties.put("mail.smtp.password", "coepleap"); 
    Session session = Session.getDefaultInstance(properties,new Authenticator() { 
     protected PasswordAuthentication getpassAuthentication(){ 
      return new PasswordAuthentication("coepleap", "coepleap"); 
     } 
    }); 

    MimeMessage message = new MimeMessage(session); 
    MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); 
    message.setFrom(new InternetAddress("coepleap")); 
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(toField)); 
    helper.setSubject(subject); 

    final String htmlContent = this.templateEngine.process("email.html",ctx); 
    helper.setText(htmlContent,true); 
    Transport.send(message);   
} 

} 

누구인가?

답변

1

이 Gmail을

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; 

public class SendMail { 

public static void main(String[] args) { 

    final String username = "username"; 
    final String password = "fghdf"; 

    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 PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(username, password); 
     } 
     }); 

    try { 

     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress("from user")); 
     message.setRecipients(Message.RecipientType.TO, 
      InternetAddress.parse("to user")); 
     message.setSubject("Testing Subject"); 
     message.setText("Dear user ," 
      + "\n\n your username is xxx and pasword is yyy"); 

     Transport.send(message); 

     System.out.println("Done"); 

    } catch (MessagingException e) { 
     throw new RuntimeException(e); 
    } 
} 

} 전달을위한

+0

Gmail이 아닌 아파치 제임스 서버를 사용하여 메일을 보내고 있습니까? –

0

당신이 만족하지 않을 가능성이 높습니다 Gmail의 요구 사항을 사용하여 메일을 보낼 수있는 코드입니다. 아마 rdns를 통해 보낸 사람을 해결할 수 없으며 그것을 반송 할 수 없습니다. 아마 네가 스패머라고 생각할거야.