gpt4 book ai didi

java - 发送电子邮件的主题

转载 作者:行者123 更新时间:2023-11-30 02:30:35 25 4
gpt4 key购买 nike

我正在开发向客户发送电子邮件的服务。所有设置,如主机、协议(protocol)等,以及电子邮件发件人或主题,我都存储在 application.properties 中。

我在另一个地方上课:

@ConfigurationProperties(prefix = "email.properties")
public class EmailProperties {

private String sender;
private String subject;

来自 application.properties 的数据被复制到此类,这非常有效......

但是我的问题是什么。我想设置主题,例如:

email.properties.subject=Hello CUSTOMER, thank you for registered.

当我发送电子邮件时,绑定(bind)客户以获取具体的客户名称,例如:

Hello Tom Rich, thank you for registered.

所以我添加到类 EmailProperties 方法:

String getSubjectWithCustomer(User user){
...}

但我不知道如何为具体用户绑定(bind)客户。也许我可以做这样的事情:

String getSubjectWithCustomer(User user){
return subject.replaceAll("CUSTOMER", user.getUserName());
}

但我觉得这是愚蠢的解决方案。我想使用更好的东西。也许你有什么想法?也许我可以使用 SpEL 来实现这个目的?但我不知道怎么做,因为我到处都只找到了如何绑定(bind) XML 文件的示例,但没有找到 aplication.properties。

也许我可以使用 SpEL 创建一些解析器?

问候。

最佳答案

您可以使用Spring MessageSource您可以在其中定义参数化和本地化消息。

类似于:

public String getLocalizedSubject(Object[] params) {
return getLocalizedSubject(params, Locale.getDefault());
}

public String getLocalizedSubject(Object[] params, Locale locale) {
return messageSource.getMessage("subject", params, locale);
}

使用:

Object[] params = new Object[] { user.getUserName() };
getLocalizedSubject(params);

并在 messages.properties 中定义主题

subject=Hello {0}, thank you for register.

关于java - 发送电子邮件的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44393518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com