2017-09-25 17 views
0

我正在尝试为Java电子邮件生成消息。生成的电子邮件在Dev和测试环境中正常工作,但UAT未检测到某些EOL,在同一电子邮件中少数事件正在工作,有些未在工作。请找到下面的代码来获得电子邮件消息:某些情况下 r n在文本电子邮件编码中无法在其中一个测试环境中工作

String genMessage(Suport me) { 
    public String EOL = "\r\n"; 

    StringBuffer sb = new StringBuffer(); 
    sb.append(EOL); 
    sb.append(EOL); 
    sb.append("The item below is now travelling"); 
    sb.append(EOL); 
    sb.append("Reason for the delay: "); 
    sb.append(me.getReason()); 
    sb.append(EOL); 
    sb.append("item Number: " + meBO.getId()); 
    sb.append(EOL); 
    ReferenceBO deliveryNumber = me.getDNumber(); 
    sb.append("Del Number: " + (dNumber != null ? deliveryNumber.getValue() : "")); 
    sb.append(EOL); 
    sb.append(EOL); 
    sb.append("Carrier: " + me.getCarrier() + " - " + me.getCarrierName()); 
    sb.append(EOL); 
    sb.append(EOL); 

    sb.append("Original Delivery Date/Time: E: " + getDate(me.getEarliestDelDatetime()))); 
    sb.append(EOL); 
    sb.append("Original Delivery Date/Time: L: " + getDate(me.getLatestDelDatetime()))); 
    sb.append(EOL); 

    return sb.toString(); 

}

的电子邮件产生:

该项目下正在行驶的延迟 原因:车辆故障或事故项目编号: 644812 Del号码:TEST20170925

承运人:ABC - ABC EXPRESS,PVT LTD。

初始交付日期/时间:E:2017年9月27日上午8:00初始交付日期/时间:L:2017年9月27日下午5:00

所以,在这里后一号线,也之前和之后承运人: EOL看起来工作,但不在其他地方。 任何建议都会有帮助。

+0

你在使用什么操作系统并使用相同的UAT?应用程序是否安装在本地?如果是这样,请使用:System.lineSeparator() –

+0

是的,根据可用的信息,所有的都是Windows 10,我们尝试过System.lineSeparator(),即使这样做效果不好。 – Puru

+0

可能的解决方案如下:“缩进每行三个或更多空格 这将告诉Outlook的接收副本不要混淆换行符”。让我知道它是否有效。链接:http://support.xink.io/support/solutions/articles/1000064098-why-is-outlook-stripping-line-breaks-from-plain-text-emails –

回答

0

感谢您的解决方案@maxBillbow。

该问题是由于Outlook更改格式并忽略了一些不需要的行更改和空格。

在每行的开始处添加3个或更多空格解决了问题。

替换public String EOL =“\ r \ n”;public String EOL =“\ r \ n”;

相关问题