如何使用apache James电子邮件服务器发送邮件到gmail



我正在尝试使用apache james服务器发送邮件。我已经完成了james的所有配置。
我的代码执行正确,没有异常。但是邮件无法送达。
下面是我的示例代码

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);        
 }
}
谁能帮我一下?

这是使用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 ,"
            + "nn your username is xxx and pasword is yyy");
        Transport.send(message);
        System.out.println("Done");
    } catch (MessagingException e) {
        throw new RuntimeException(e);
    }
}

}

很可能你没有满足gmail的投递要求。它可能无法通过rdns解析发送者并将其反弹。可能会认为你是垃圾邮件发送者。

相关内容

最新更新