Comment définir le type de contenu pour les e-mails envoyés à l'aide du printemps JavaMailSenderImpl
question est de sujet. Je suis en utilisant JavaMailSenderImpl de printemps 3.0.3.La LIBÉRATION et de la vitesse 1.6.4 pour la préparation du courrier à partir d'un modèle.
Lorsque j'envoie un email avec le croate personnages de mes webapp destinataire reçoit un "?" dans le stand de la normale croate caractères. Si j'ai activer le mode debug pour les mails,
de journal, je peux voir que Content-type est fixé à:
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit
Comment puis-je le mettre à:
Content-Type: text/html; charset=utf-8?
J'utilise gmail pour l'envoi de mail alors que je suis le développement de cette webapp.
Voici mes paramètres dans le ressort de la servlet, xml fichier 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>
Voici mon code à partir de gestionnaire de courrier:
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;
}
}
Avez-vous une autre suggestion?
Ce qui concerne,
Tiho
OriginalL'auteur Tiho | 2010-07-18
Vous devez vous connecter pour publier un commentaire.
J'ai résolu mon problème grâce à
ce post.
Selon le post, j'ai mis cela dans la mailSender bean configuration:
vous êtes les bienvenus. 🙂
Ici ist le poste à archive.org: GMail via Printemps JavaMailSenderImpl
cılay Merci pour ce lien, je vais ad pour répondre.
OriginalL'auteur
Vous pouvez définir cette propriété
mail.mime.charset
dans le JavaMailSenderImpl printemps bean config. Voir un exemple de réponse à cette requête précédente.OriginalL'auteur