Hybris:将电子邮件发送到以下服务器失败:smtp.gmail.com:587

问题描述 投票:0回答:0

我正在尝试使用 sap commerce 发送电子邮件。 我已经很好地配置了配置扩展local.properties

mail.smtp.server=smtp.gmail.com

mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
[email protected]
mail.smtp.ssl.protocols=TLSv1.2

[email protected]
mail.smtp.password=********

mail.smtp.starttls.enable=true
mail.smtp.auth=true

但是在执行作业后和发送电子邮件时会显示警告

WARN  [TaskExecutor-master-1591-ProcessTask [8796754772918]] [DefaultEmailService] Could not send e-mail pk [8796226197568] subject [Exclusive Promotions on Our Products - Don't Miss Out!! ] cause: Sending the email to the following server failed : smtp.gmail.com:587

这是我的工作步骤

  1. 我创建了一个“ListFavoritesProcess”模型,用一个属性扩展了“StoreFrontCustomerProcess”

    <attribute qualifier="products" type="ProductList">
     <persistence type="property" />
     <description>Attribute contains the products that will be used in the process</description>
    </attribute>
    
    
  2. 然后我创建了 process.xml 文件

  3. 然后我创建了一个类来开始这个过程

public Boolean discountNotificationEmailprocess(final CustomerModel customer, final Set<ProductModel> products)
{
Boolean bool = false;
if ((customer != null) && CollectionUtils.isNotEmpty(products))
{
    final ListFavoritesProcessModel listFavoritesProcessModel = getBusinessProcessService()
        .createProcess("listFavoritesProcessModel-" + customer.getUid() + "-"System.currentTimeMillis() + "-"+ Thread.currentThread().getId(), "DiscountNotificationEmailProcess");
listFavoritesProcessModel.setCustomer(customer);
            listFavoritesProcessModel.setStore(getBaseStoreService().getBaseStoreForUid("electronics"));
            listFavoritesProcessModel.setSite(getBaseSiteService().getBaseSiteForUID("electronics"));
            listFavoritesProcessModel.setLanguage(getBaseStoreService().getBaseStoreForUid("electronics").getDefaultLanguage());
            listFavoritesProcessModel.setCurrency(getBaseStoreService().getBaseStoreForUid("electronics").getDefaultCurrency());
listFavoritesProcessModel.setProducts(new ArrayList<ProductModel>(products));
getModelService().save(listFavoritesProcessModel);
getBusinessProcessService().startProcess(listFavoritesProcessModel);
bool = true;
}
return bool;
}
  1. 然后我创建了从 AbstractEmailContext 扩展的上下文

    @Override
    public void init(final ListFavoritesProcessModel listFavoritesProcessModel, final EmailPageModel emailPageModel)
    {
    super.init(listFavoritesProcessModel, emailPageModel);
    products = new ArrayList<>();
    final List<ProductModel> productsModel = listFavoritesProcessModel.getProducts();
    productsModel.forEach(productModel -> {
    final ProductData productData = getProductFacade().getProductForOptions(productModel,
    Arrays.asList(ProductOption.BASIC, ProductOption.PRICE, ProductOption.STOCK, ProductOption.PROMOTIONS));
    products.add(productData);
    });
    put(EMAIL, getCustomerEmailResolutionService().getEmailForCustomer(getCustomer(listFavoritesProcessModel)));
    put(DISPLAY_NAME, listFavoritesProcessModel.getCustomer().getName());
    put(FROM_EMAIL, Config.getParameter("mail.smtp.user"));
    put(FROM_DISPLAY_NAME, "sap");
    System.out.println("DiscountNotificationEmailContext init");
    }
    
java smtp gmail sap-commerce-cloud sap
© www.soinside.com 2019 - 2024. All rights reserved.