使用java邮件向群组电子邮件发送电子邮件的问题

时间:2014-03-10 06:43:19

标签: java email

由于主题是自我解释 - 我在使用java邮件向群组电子邮件发送电子邮件时遇到问题。

我经历了几个博客&没有帮助的文章&没有准确的答案或挂在中间。

你能帮忙吗?这是我的邮件课程。我的邮件将链接到ftp location&文本文件作为附件。

为了分离问题,我试图向该组发送一个简单的邮件,但这也没有帮助。

我试图在像java-forums.org&amp ;;这样的地方找到答案。堆栈溢出但发现没有运气。

我感谢您的优质时间&帮助提供对问题的洞察力。

更好地解释问题 -

我的自动化框架在完成测试用例的执行时,它会向我发送一封邮件,其中包含指向执行报告的链接。日志文件作为附件。现在,报告的受众已经扩大了。我们需要将邮件发送到群组电子邮件地址。

当我设置电子邮件(比如group.email@company.com)时,该组中没有任何用户收到邮件。好像我将电子邮件发送到我的电子邮件地址或其他任何电子邮件地址。

我没有这个&的日志或错误所以我无法正确理解这个问题。

专家的见解将有助于理解这个问题。

提前致谢。 Akshat

import java.util.ArrayList;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Message.RecipientType;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;


public class ReportMail {

private MimeMessage message = null;
private Session emailSession = null;
private MimeBodyPart textPart = null;
private ArrayList<MimeBodyPart> attachmentArray = null;

public void sendMailer(String mailToId, String string, String mailServer1,
        int mailPort, String mailAdmin) {
    Properties mailProperties = null;
    mailProperties = new Properties();

    String adminEmailId = mailAdmin;
    String mailServer = mailServer1;
    mailProperties.put("mail.transport.protocol", "smtp");
    //mailProperties.put("mail.smtp.auth", "true");
    mailProperties.put("mail.smtp.host", mailServer);
    mailProperties.put("mail.from", adminEmailId);
    mailProperties.put("mail.smtp.port", mailPort);
    mailProperties.put("mail.to", mailToId);


    try {
        emailSession = Session.getInstance(mailProperties);
        emailSession.setDebug(false);

        message = new MimeMessage(emailSession);
        textPart = new MimeBodyPart();
        attachmentArray = new ArrayList<MimeBodyPart>(2);
        message.addRecipients(RecipientType.TO, mailToId);
        message.setSubject(string);
        message.setFrom(new InternetAddress(adminEmailId));

        setContent("<a href=\"file://tambe3/report/emailable-report.html\" target=\"_blank\">PCM Automation Report</a>");
        //setContent("test123");
        sendEMail();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public void setContent(String content) {
    try {
        textPart.setContent(content, "text/html");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public boolean sendEMail() throws Exception {
    try {
        Multipart mp = new MimeMultipart();
        mp.addBodyPart(textPart);
        for (int i = 0; i < attachmentArray.size(); i++)
            mp.addBodyPart(attachmentArray.get(i));

        /********************
         * 
         */
        // Part two is attachment
        BodyPart messageBodyPart = new MimeBodyPart();
        messageBodyPart = new MimeBodyPart();

        messageBodyPart.setText("Below is the link for the Test Automation report as link & attached Log file. PFA.");
        //mp.addBodyPart(messageBodyPart);

        String filename = "logfile.log";     //C:\workspacePCMSanity\PCMSanity\logfile.log
        DataSource source = new FileDataSource(filename);
        messageBodyPart.setDataHandler(new DataHandler(source));
        messageBodyPart.setFileName(filename);

        mp.addBodyPart(messageBodyPart);
        /**
         * 
         */
        message.setContent(mp);

        Transport transport = emailSession.getTransport();
        transport.connect();
        transport.sendMessage(message, message.getRecipients(Message.RecipientType.TO));
        transport.close();
    } catch (Exception e) {
        e.printStackTrace();

        throw e;
    }
    return true;
}
}

2 个答案:

答案 0 :(得分:0)

Java不知道电子邮件地址是针对单个用户还是组。 可能是SMTP服务器的问题。

答案 1 :(得分:0)

Microsoft Exchange Server 中,有一个特殊的群组地址设置选项要求所有发件人都经过身份验证。当未知用户被用作发件人时,此类电子邮件将被拒绝。您可以以真实用户的名义发送电子邮件或启用此选项。在后一种情况下,群组地址向垃圾邮件开放。

http://technet.microsoft.com/en-us/library/bb124405%28v=exchg.141%29.aspx