Html.fromHtml Gmail发送的.sendMail(字符串,字符串,字符串,字符串)内
问题描述:
我有以下代码: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字符串。
任何人都可以提出解决这个问题的办法吗?
在此先感谢
克里斯
答
它已经证明,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){
}
}
答
如果你总是希望HTML的邮件,你可以改变sendmail的功能,改变text/plain
到text/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
第二个参数应该是String类型而不是Spanned。 – vorrtex
我试图将html添加到我的电子邮件中,在我发送的电子邮件中显示html,是否需要更改方法参数或将标题添加到电子邮件? – cwiggo
尝试将此方法调用替换为'sender.sendMail(subject,body,dev,emailadd)'。使用'body'变量而不是'html'。然后它将工作或有不同的错误。 – vorrtex