Question

J'ai écrit page Visualforce que vous pouvez envoyer un courriel. Il fonctionne très bien en anglais. Mais quand je tapais japonais dans la section corps e-mail et l'envoyer, ma boîte de réception e-mail a des points d'interrogation au lieu de japonais.

corps du texte dans des spectacles gmail dans tous ?

??????????????????????????

Je pense que je dois encoder la chaîne? Mais comment le faire dans le code Apex? classe EncodeUtil a peu de méthodes, mais il ne prend pas chaîne pour l'encodage.

code

public PageReference sendEmail() {
    Messaging.SingleEmailMessage mail = new Messaging.singleEmailMessage();
            //subject
            subject = 'my subject';
            mail.setSubject(subject);
            //set sender name
            mail.setSenderDisplayName('im sender');
            //set recipient
            emailTo = 'test@test.com'; //test sample email address
            mail.setToAddresses(new String[]{emailTo});
            //set body
                String bodyText = '送信者'; //add Japanese to body
            mail.setPlainTextBody(bodyText);

            try{
                Messaging.SendEmailResult[] resultMail = Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
                if(resultMail[0].isSuccess())
                    response = 'ok sent!';
                else{
                    response = resultMail[0].getErrors().get(0).getMessage();
                }
            }catch(System.EmailException ex){
                response = ex.getMessage();
            }
}
Était-ce utile?

La solution

J'ai trouvé la solution alors laissez-moi partager ...

classe Messaging.SingleEmailMessage a la fonction setCharset()

dans le code dans ma question, je avais juste besoin de fournir l'encodage japonais "SHIFT-JIS"

mail.setCharset('Shift-JIS');

Résolu:)

Autres conseils

Vous devriez le mettre à la place utiliser UTF8 UTF-8 de sorte que vous ne serez pas limité à un peu japonais.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top