有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在某个测试环境中出现了一些\r\n无法使用文本电子邮件编码的情况

我正在尝试用Java为电子邮件生成一条消息。生成的电子邮件在开发和测试环境中可以正常工作,但UAT没有检测到一些EOL,在同一封电子邮件中,很少有事件在工作,有些则不工作。请查找以下代码以获取电子邮件:

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快递私人有限公司

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

因此,在第1条线之后,以及运营商之前和之后:EOL看起来正在工作,但在其他地方没有。 任何建议都会有帮助


共 (1) 个答案

  1. # 1 楼答案

    谢谢你的解决方案@maxBilbow

    这个问题是因为Outlook更改了格式,忽略了一些它认为不必要的行更改和空格

    在每行的开头添加3个或更多空格可以解决这个问题

    替换了公共字符串EOL=“\r\n”带有公共字符串EOL=“\r\n”