0

電子メール機能に Java 電子メール API を使用しています。メールが配信されていないため、機能していないようです。コードで例外が発生しないため (smtp に正しく接続されているようです)、デバッグすると問題なく動作するようです。だから、私のコードに他に何か問題があるのではないかと思っていますか? ここに、関連するインポートも含まれています。クラスには「createBody()」メソッドもありますが、メッセージに情報を入力するだけなので、それは重要ではないと考えました。

import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;



public class Mail {

    public Mail() {
    }

    static public boolean sendHtml(Commission commission, String mailServer, InternetAddress fromAddress, InternetAddress ccAddress, String subject, String header) throws Exception {

        try {
            String body = createBody(commission);
            InternetAddress toAddress = new InternetAddress(commission.getForm().getActiveReceiver().getEmail());

            Properties props = new Properties();
            props.put("mail.smtp.host", mailServer);
            Session session = Session.getDefaultInstance(props);

            //Instantiate a message holder
            Message msg = new MimeMessage(session);
            msg.setHeader("Content-Type", "text/plain; charset='iso-8859-1'");

            //From
            msg.setFrom(fromAddress);

            //To
            msg.addRecipient(Message.RecipientType.TO, toAddress);

            //CC
            if (ccAddress != null)
                msg.addRecipient(Message.RecipientType.CC, ccAddress);

            //Subject
            if (!subject.equals(""))
                msg.setSubject(subject);

            //Date
            msg.setSentDate(new Date());

            //Begin
            StringBuffer sb = new StringBuffer();
            sb.append("<html>\n");
            sb.append("<head>\n");
            sb.append("<title>\n");
            sb.append("</title>\n");
            sb.append("<style type=\"text/css\">\n");
            sb.append("*{font-family: Tahoma; font-size: 11px; font-weight: normal; color: #51514F;}\n");
            sb.append("body{background-color: #FEF8EA;}\n");
            sb.append("tr.odd {background-color: #F3F3F3;border: 1px #F3F3F3 solid;}\n");
            sb.append("tr.even {background-color: #FFFFFF;border: 1px #FFFFFF solid;}\n");
            sb.append("th {font-weight: bold; background-color:#F3F3F3; border-bottom: 1px solid #E2D6BC;}\n");
            sb.append("p.header {font-weight: bold;}\n");
            sb.append("table {border-collapse:collapse; border: 1px solid #E2D6BC;}\n");
            sb.append("td.center {text-align:center;}\n");
            sb.append("</style>\n");
            sb.append("</head>\n");
            sb.append("<body>\n");

            //Header
            if (!header.equals(""))
                sb.append("<h1>"+header+"</h1>");

            //Body
            if (!body.equals("")) 
                sb.append(body);

            //End
            sb.append("</body>\n");
            sb.append("</htmnl>\n");

            msg.setContent(sb.toString(), "text/html");
            System.out.println("About to connect");
            //Connect
            Transport transport = session.getTransport("smtp");
            transport.connect();


            //Sending the mail
    transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));

            //Sending the CC mail
            if (ccAddress != null)
        transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.CC));

            //Close
            transport.close();

        } catch (Exception e) {
            throw e;
        }
        return true;
    }

}
4

2 に答える 2

0

以下を試してください。それはあなたを助けるかもしれません。

 Session mailSession = Session.getInstance(System.getProperties());    
 Transport transport 
      = new SMTPTransport(mailSession,new URLName("mail.your-server.com"));    
 transport.connect("mail.your-server.com",portNumber,userName,userPassword);

例:

 Session mailSession = Session.getInstance(System.getProperties());
 Transport transport 
     = new SMTPTransport(mailSession,new URLName("mail.prabhakar.com"));
 transport.connect("mail.prabhakar.com",25,"prabhakar","******");
于 2013-05-24T13:11:50.953 に答える
0

SMTPsmtp デバッグを有効にして、レベルで何が起こっているかを確認できます。

Properties props = new Properties();
props.put("mail.smtp.host","<MAILHOST>");
props.put("mail.debug", true);
Session session = Session.getInstance(props);
于 2013-05-24T13:29:39.773 に答える