0

我有以下代码:

dev = "email@gmail.com";
dev_p = "password";
subject = "Thank you for signing up to the company auditing app";
body = "<!DOCTYPE html><body>To " + username + ",\nThank you for signing up to the company auditing application.\nYou can login to your account via our website <a href='http://www.companyauditingapp.com/'>here</a>.\n Regards,\nThe Team</body></html>";
Spanned html = Html.fromHtml(body);
try{
    GMailSender sender = new GMailSender(dev, dev_p);
    sender.sendMail(subject,html,dev,emailadd);
} catch (Exception e) {
    Log.e("SendMail", e.getMessage(), e);
}

我希望能够通过 sendMail 方法发送 html,在 eclipse 中它一直要求我将方法参数 - 字符串 html/body 更改为跨区字符串。

任何人都可以提出解决这个问题的方法吗?

提前致谢

克里斯

4

2 回答 2

2

事实证明,这GMailSender是一个 stackoverflow 用户在这篇文章中发布的自定义类。

发送 HTML 而不是纯文本的最简单方法是更改sendMail​​上面链接中的方法并替换text/plaintext/html.

或者,您可以为方法添加参数并使其更具可定制性:

public synchronized void sendMail(String subject, String body, String sender, String recipients, boolean isHtml) throws Exception {   
    try{
        MimeMessage message = new MimeMessage(session);
        String messageType = isHtml ? "text/html" : "text/plain";
        DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), messageType));   
        message.setSender(new InternetAddress(sender));   
        message.setSubject(subject);   
        message.setDataHandler(handler);   
        if (recipients.indexOf(',') > 0)   
            message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));   
        else  
            message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));   
        Transport.send(message);   
    }catch(Exception e){

    }
}   
于 2013-07-19T12:40:09.090 回答
0

如果您总是想要 HTML 消息,您可以更改 sendmail 功能并更改text/plaintext/html.

public synchronized void sendMail(String subject, String body, String sender, String recipients) throws Exception {   
    try{
    MimeMessage message = new MimeMessage(session);   
    DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), **"text/plain"**));   
    message.setSender(new InternetAddress(sender));   
    message.setSubject(subject);   
    message.setDataHandler(handler);   
    if (recipients.indexOf(',') > 0)   
        message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));   
    else  
        message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));   
    Transport.send(message);   
    }catch(Exception e)
    }
} 
于 2014-10-14T22:30:17.687 回答