-1

スクリプトの完了後に電子メールを送信しているときに、本文の一部を追加できません。私は体を追加したい、

xyz さん、こんにちは。

添付のレポートをご覧ください。

敬具、

Abc。

メールを送信するために以下のコードを使用しています。誰でもメールの送信方法を教えてください。

package util;



//set CLASSPATH=%CLASSPATH%;activation.jar;mail.jar

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.*;

import javax.mail.internet.*;

import java.util.*;



public class SendMail

{
    public static void zipAndSendReport()

    {

        TestUtil.zip(System.getProperty("user.dir") +"\\HtmlReports");


                String[] to={"xyz@xyz.com"};

                String[] cc={"xyzff@xyz.com","xyzaa@xyz.com"};
                String[] bcc={"xyzrwer@xyz.com"};

                //This is for google

                SendMail.sendMail("acv.ddg@gmail.com",
                                    "070122dasdad3183",
                                    "smtp.gmail.com",
                                    "465",
                                    "true",
                                    "true",
                                     true,
                                    "javax.net.ssl.SSLSocketFactory",
                                    "false",
                                    to,
                                    cc,
                                    bcc,
                                    "Automation test Reports",
                                    "Please find the reports attached.\n\n Regards\nWebMaster",
                                    System.getProperty("user.dir")+"\\Reports.zip",
                                    "Reports.zip");


    }



        public  static boolean sendMail(String userName,
                String passWord,
                String host,
                String port,
                String starttls,
                String auth,
                boolean debug,
                String socketFactoryClass,
                String fallback,
                String[] to,
                String[] cc,
                String[] bcc,
                String subject,
                String text,
                String attachmentPath,
                String attachmentName){


                Properties props = new Properties();

                //Properties props=System.getProperties();

        props.put("mail.smtp.user", userName);

        props.put("mail.smtp.host", host);

                if(!"".equals(port))

        props.put("mail.smtp.port", port);

                if(!"".equals(starttls))

        props.put("mail.smtp.starttls.enable",starttls);

        props.put("mail.smtp.auth", auth);
       // props.put("mail.smtps.auth", "true");


                if(debug){

                props.put("mail.smtp.debug", "true");

                }else{

                props.put("mail.smtp.debug", "false");         

                }

                if(!"".equals(port))

        props.put("mail.smtp.socketFactory.port", port);

                if(!"".equals(socketFactoryClass))

        props.put("mail.smtp.socketFactory.class",socketFactoryClass);

                if(!"".equals(fallback))

        props.put("mail.smtp.socketFactory.fallback", fallback);



        try

        {

                        //Session session = Session.getDefaultInstance(props, null);

            Session session = Session.getDefaultInstance(props,
                    new javax.mail.Authenticator() 
          {
               protected PasswordAuthentication getPasswordAuthentication()
               { return new PasswordAuthentication("acv.ddg@gmail.com","070122sd3183");     }
          });

            session.setDebug(debug);

            MimeMessage msg = new MimeMessage(session);

            msg.setText(text);

            msg.setSubject(subject);
            //attachment start
            // create the message part 

            Multipart multipart = new MimeMultipart();
            MimeBodyPart messageBodyPart = new MimeBodyPart();
            DataSource source = 
              new FileDataSource(attachmentPath);
            messageBodyPart.setDataHandler(
              new DataHandler(source));
            messageBodyPart.setFileName(attachmentName);
            multipart.addBodyPart(messageBodyPart);

            // attachment ends

            // Put parts in message
            msg.setContent(multipart);
            msg.setFrom(new InternetAddress(userName));

                        for(int i=0;i<to.length;i++){

            msg.addRecipient(Message.RecipientType.TO, new InternetAddress(to[i]));

                        }

                        for(int i=0;i<cc.length;i++){

            msg.addRecipient(Message.RecipientType.CC, new InternetAddress(cc[i]));

                        }

                        for(int i=0;i<bcc.length;i++){

            msg.addRecipient(Message.RecipientType.BCC, new InternetAddress(bcc[i]));

                        }

            msg.saveChanges();

                        Transport transport = session.getTransport("smtp");

                        transport.connect(host, userName, passWord);

                        transport.sendMessage(msg, msg.getAllRecipients());

                        transport.close();

                        return true;

        }

        catch (Exception mex)

        {

            mex.printStackTrace();

                        return false;

        }

        }



}

このコードが機能するか、またはこれを行うためのより良い方法があるかどうかお知らせください。

ありがとう、

スダンス

4

1 に答える 1

0

MimeMessage には、setText()または multipart-body を介して設定されたテキストを含めることができます。

添付ファイルを使用しているため、マルチパートを使用する必要があります。メッセージにプレーンテキストを追加するには、別のテキストを作成MimeBodyPartして最初に追加しますMultipart:

....
Multipart multipart = new MimeMultipart();
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText(text);
mmp.addBodyPart(textPart);
MimeBodyPart messageBodyPart = new MimeBodyPart();
....
于 2013-09-13T09:31:20.967 に答える