首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何克服异常-在java发送电子邮件时,字符串“`”中的非法地址

如何克服异常-在java发送电子邮件时,字符串“`”中的非法地址
EN

Stack Overflow用户
提问于 2014-10-20 08:26:32
回答 3查看 7K关注 0票数 1

这是我的密码:

代码语言:javascript
复制
prop.load(new FileInputStream("config.properties"));
        String emailTo = prop.getProperty("To");
        String emailCC = prop.getProperty("CC");
        String emailBCC = prop.getProperty("BCC")

String[] to = emailTo.trim().split(",");
        String[] cc = emailCC.trim().split(",");
        String[] bcc = emailBCC.trim().split(",");

 --- Note: Value of CC and BCC is blank in properties file

config.properties

代码语言:javascript
复制
To = tarique.khan@test.com
CC =
BCC =

--我试过了,我认为这是因为CC和BCC的零值,但是如何解决它。我没有头绪。

异常发生:

代码语言:javascript
复制
DEBUG: setDebug: JavaMail version 1.3.1
javax.mail.internet.AddressException: Illegal address in string ``''
    at javax.mail.internet.InternetAddress.<init>(InternetAddress.java:68)
    at com.neosoft.reporting.SendEmail.sendMail(SendEmail.java:165)
    at com.neosoft.reporting.SendEmail.execute(SendEmail.java:60)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)

传递参数的sendMail()声明:

如果属性文件中CC和BCC的值为空,那么应该传递什么方法。

代码语言:javascript
复制
SendEmail.sendMail("testrobot.personiphi@gmail.com", "xxxx", "smtp.gmail.com",
                            "465", "true", "true", true, 
                            javax.net.ssl.SSLSocketFactory.class.getCanonicalName(),
                            "false", to, cc, bcc, "Automation Test Report",
                            "Hi \n Here is your test report of current run that was initiated.",
                            path, reportFileName);
}

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)
EN

Stack Overflow用户

回答已采纳

发布于 2014-10-20 09:21:32

首先,像您所做的那样从CC文件中获取config.properties & BCC

代码语言:javascript
复制
 String emailTo = prop.getProperty("To");
 String emailCC = prop.getProperty("CC");
 String emailBCC = prop.getProperty("BCC")

然后检查它们是否像NULL一样

代码语言:javascript
复制
String[] cc;
String[] bcc;
if(emailCC.length() != 0){
    cc = emailCC.trim().split(",");
}else if(emailBCC.length() != 0){
    bcc = emailBCC.trim().split(",");
}

cc & bccnull时,然后在sendMail()中添加以下条件:

代码语言:javascript
复制
for(int i = 0; i < cc.length; i++) {
    if(!cc[i].isEmpty())
        message.addRecipient(Message.RecipientType.CC, new InternetAddress(cc[i]));
}
for(int i = 0; i < bcc.length; i++) {
    if(!bcc[i].isEmpty())
        msg.addRecipient(Message.RecipientType.BCC, new InternetAddress(bcc[i]));
}

我希望这能解决你的问题。

票数 2
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26461344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档