- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
问题来自主题。我正在使用 spring 3.0.3.RELEASE 中的 JavaMailSenderImpl 和 velocity 1.6.4 来从模板准备邮件。
当我从我的 webapp 收件人发送带有克罗地亚语字符的电子邮件时,我会收到“?”在正常克罗地亚字符的立场。如果我打开邮件的 Debug模式, 从日志中我可以看到 Content-type 设置为:
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
如何设置:
Content-Type: text/html; charset=utf-8?
我在开发这个 web 应用程序时使用 gmail 发送邮件。
这是我在 spring 的 servlet xml conf 文件中的设置:
<bean id="userAuthorizationManager" class="com.mypackage.manage.SimpleUserAuthorizationManagerImpl">
<property name="mailSender" ref="mailSender" />
<property name="velocityEngine" ref="velocityEngine" />
<property name="from" value="address" />
<property name="authorizationAddress" value="some text" />
<property name="subject" value="some text" />
</bean>
<bean id="mailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
<property name="host" value="smtp.gmail.com" />
<property name="port" value="465" />
<property name="username" value="user" />
<property name="password" value="pass" />
<property name="protocol" value="smtps" />
<property name="javaMailProperties">
<props>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.connectiontimeout">5000</prop>
<prop key="mail.smtp.sendpartial">true</prop>
<prop key="mail.smtp.userset">true</prop>
<prop key="mail.mime.charset">UTF-8</prop>
<prop key="mail.smtp.isSecure">true</prop>
<prop key="mail.smtp.requiresAuthentication">true</prop>
<prop key="mail.smtp.auth">true</prop>
<prop key="mail.smtp.port">465</prop>
<prop key="mail.smtp.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.smtp.socketFactory.fallback">false</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
<prop key="mail.debug">true</prop>
</props>
</property>
</bean>
<bean id="velocityEngine"
class="org.springframework.ui.velocity.VelocityEngineFactoryBean">
<property name="velocityProperties">
<value>
resource.loader=class
class.resource.loader.class=org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader
</value>
</property>
</bean>
这是我来自邮件管理器的代码:
private void sendConfirmationEmail(final User user, final int requestId) {
MimeMessagePreparator preparator = new MimeMessagePreparator() {
public void prepare(MimeMessage mimeMessage) throws Exception {
MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setTo(user.getEmailAddress());
message.setFrom(from);
message.setSubject(subject);
Map<String, Object> model = new HashMap<String, Object>();
model.put("user", user);
model.put("authorizationAddress", authorizationAddress);
model.put("requestId", requestId);
String text = VelocityEngineUtils
.mergeTemplateIntoString(
velocityEngine,
"com/mypackage/mail/registration-confirmation.vm",
model);
message.setText(text, true);
}
};
PendingMail pendingMail = new PendingMail(preparator);
pool.submit(pendingMail);
}
private class PendingMail implements Callable<Object> {
MimeMessagePreparator preparator;
protected PendingMail(MimeMessagePreparator preparator) {
this.preparator = preparator;
}
public Object call() {
mailSender.send(preparator);
return null;
}
}
你还有什么建议吗?
问候,蒂霍
最佳答案
我解决了我的问题,感谢 this post .
根据帖子我把这个放在mailSender bean配置中:
<property name="defaultEncoding" value="UTF-8"/>
关于spring - 如何为使用 Spring 的 JavaMailSenderImpl 发送的电子邮件设置内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3275133/
我在我的应用程序中使用 Spring 发送电子邮件。 我想在发送电子邮件时记录 imap 服务器操作。 我尝试按如下方式在我的 applicationContext.xml 中实现日志:
我正在使用 org.springframework.mail.javamail.JavaMailSenderImpl 发送邮件,下面是一段运行良好的代码。 emailArray 是一个包含 5 个收件
我正在使用Spring和JavaMailSenderImpl(著名的Spring类)来发送电子邮件。我的电子邮件中包含许多Unicode字符,例如èéàò或最引人注意的€符号。在Windows上运行时
这个问题不太可能帮助任何 future 的访客;它仅与一个小地理区域、一个特定时刻或一个非常狭窄的情况相关,而这些情况通常不适用于互联网的全局受众。如需帮助使这个问题更广泛地适用,visit the
我已经配置了我的电子邮件属性,但从地址发送电子邮件时正在动态更改 我尝试使用与发件人地址相同的电子邮件地址,然后它可以工作,但如果我使用不同的电子邮件地址,则会出现权限问题。 电子邮件配置是:
使用 Spring 3.0,我编写了一个接口(interface)来向应用程序隐藏我用于发送邮件的模板引擎。界面是 public interface MailSender { public v
我有一个非常大的项目,有大量的依赖项,并且在尝试发送邮件时遇到以下异常: javax.mail.NoSuchProviderException: smtp 我知道代码有效,因为它是其他项目中使用的库的
我想发送一封带有 From 的邮件 header ,但我不想在 SimpleMailMessage 中设置 From header 。我想使用 mail.from 配置的默认值属性为javax.mai
问题来自主题。我正在使用 spring 3.0.3.RELEASE 中的 JavaMailSenderImpl 和 velocity 1.6.4 来从模板准备邮件。 当我从我的 webapp 收件人发
我正在尝试使用 JavaMailSenderImpl 类查找用于连接到 Gmail SMTP 服务器的正确属性。 我先说我已经尝试了找到的方法 here .这工作得很好。但是,当我使用完全相同的身份验
我的 OS X (Maverick) 计算机上有 Spring 框架应用程序。我使用 Gmail。 我们的 Spring Framework 应用程序使用 org.springframework.ma
我正在以这种方式发送电子邮件: @Test public void testEmailCharacterSet() throws MessagingException, UnsupportedEnco
我正在编写一个 Spring 邮件程序: @Service("LeaveEmail") public class LeaveEmail { @Autowired private Mai
我用3.1.1框架版本开发了Spring MVC应用,现在我想切换到4.0.1。 我正在使用 Maven 来处理所有依赖项。因此,当我更改 pom.xml 中的版本时,出现编译错误 JavaMailS
我需要使用自定义 SSLFactory 类来避免邮件服务器上的自签名证书出现问题。我正在尝试使用下一个配置,它适用于 gmail。但是,如果我切换到我的邮件服务器,它就不再工作了,在 wireshar
我在使用 JavaMailSenderImpl 在我的 spring boot 应用程序中发送电子邮件时遇到了一些“问题”。 我正在尝试动态设置所有属性(我希望将来从数据库中读取它们)但是,出于我不知
我是一名优秀的程序员,十分优秀!