1

私のプログラムでは、Java を使用してメールを送信する必要があります。プログラムはメールを正しく送信しますが、サーバーは自動的に署名を追加します。その結果、受信した電子メールには正しい本文​​が含まれていますが、html タグ付きの署名が含まれています。

Correct body.....
</pre>
<html>
<i>
Sent by me
<i>
<br>
<br>
</html>

次のコードでメールを送信しました。

Properties props = new Properties();
    props.put("mail." + protocol + ".host", smtpHost);
    props.put("mail." + protocol + ".port", smtpPort);
    Session session = Session.getDefaultInstance(props, null);

    // Construct the message
    Message msg = new MimeMessage(session);
    msg.setFrom(new InternetAddress(user));
    msg.setRecipients(RecipientType.TO, loadAddress());
    msg.setSubject(subject);
    msg.setText(body);

    // Send the message
    props.put("mail." + protocol + ".auth", "false");
    Transport t = session.getTransport(protocol);
    try {
        t.connect();
        t.sendMessage(msg, msg.getAllRecipients());
    } finally {
        t.close();
    }

編集:次のコードを挿入しようとしています:

BodyPart messageBodyPart = new MimeBodyPart();
    messageBodyPart.setText(body);
    Multipart multipart = new MimeMultipart();
    multipart.addBodyPart(messageBodyPart);

    msg.setContent(multipart);

しかし、結果は変わりません。ボディを作成する関数は次のとおりです。

public void setBody(ArrayList<User> users) {

    Calendar c = Calendar.getInstance();
    c.add(Calendar.DATE, -1);
    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    String formattedDate = df.format(c.getTime());
    subject = new String("Day " + formattedDate);
    body += "Hi "
        + formattedDate;    
}

何か案は?

4

2 に答える 2

0

Message クラスのメソッドを試し、.setContent(Object o, String s)ボディを Object パラメーターに String として入れ、2 番目のパラメーターに "text/html" のようなものを入れてコンテンツ タイプを定義します。

于 2013-08-01T10:33:54.823 に答える
0

最後に、次のコードを挿入して解決しました:

MimeBodyPart mbp1 = new MimeBodyPart();
    mbp1.setContent(body, "text/html");
    Multipart mp = new MimeMultipart();
    mp.addBodyPart(mbp1);

    msg.setContent(mp, "text/html");
于 2013-08-01T11:31:26.910 に答える