2013-07-09 116 views
0

我有以下代码:Html.fromHtml Gmail发送的.sendMail(字符串,字符串,字符串,字符串)内

dev = "[email protected]"; 
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,在日食它不断要求我将方法参数 - 字符串html/body更改为spanned字符串。

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

在此先感谢

克里斯

+0

第二个参数应该是String类型而不是Spanned。 – vorrtex

+0

我试图将html添加到我的电子邮件中,在我发送的电子邮件中显示html,是否需要更改方法参数或将标题添加到电子邮件? – cwiggo

+0

尝试将此方法调用替换为'sender.sendMail(subject,body,dev,emailadd)'。使用'body'变量而不是'html'。然后它将工作或有不同的错误。 – vorrtex

回答

2

它已经证明,GMailSender是由计算器用户this post发布的自定义类。

发送HTML而不是纯文本的最简单方法是从上面的链接更改sendMail方法,并用text/html替换text/plain

或者你可以添加一个参数的方法,使其更加个性化:

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){ 

    } 
} 
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) 
    } 
} 
+0

sendMail函数位于公共级GMailSender。 – sodasodamac