在本文中,我們將發(fā)送一封電子郵件,其中包含精心設(shè)計(jì)的表單以顯示與郵件一起發(fā)送的數(shù)據(jù)。
眾所周知,對(duì)我們所有人來(lái)說(shuō),使用電子郵件已經(jīng)變得十分必要和重要。有各種電子郵件服務(wù)提供商,例如Yahoo,Outlook,iCloud和Gmail等。這些技術(shù)巨頭為每個(gè)用戶提供免費(fèi)的電子郵件服務(wù)。如果您使用互聯(lián)網(wǎng),則無(wú)法忽略它,因?yàn)槊慨?dāng)您訪問(wèn)任何網(wǎng)站/應(yīng)用程序以在線購(gòu)買/銷售產(chǎn)品時(shí),都可以。首先,您必須在這些網(wǎng)站/應(yīng)用程序上注冊(cè)才能證明您在現(xiàn)實(shí)世界中的身份。
在本文中,我們將學(xué)習(xí)如何使用JavaMail API將Gmail收件箱中的電子郵件發(fā)送到指定的電子郵件地址。我們將發(fā)送常見(jiàn)的用戶數(shù)據(jù),例如用戶名,電子郵件地址,手機(jī)號(hào)碼。等等
因此,讓我們開(kāi)始吧。
步驟1
- 首先,創(chuàng)建空的android項(xiàng)目,并在根目錄中創(chuàng)建名稱為MailSender.java和JSSEProvider.java的Java類。
- 現(xiàn)在,我們需要將Java Mail API jar文件導(dǎo)入到我們的項(xiàng)目中。從此處下載jar文件,解壓縮并將其粘貼到libs文件夾中。
- 如果您的項(xiàng)目無(wú)法識(shí)別您的庫(kù),請(qǐng)重新啟動(dòng)Android Studio。
- 右鍵單擊app-> New-> Folder-> Assets Folder,創(chuàng)建資產(chǎn)文件夾。我們將HTML文件放在此處,以在Gmail上顯示數(shù)據(jù)。
- 要發(fā)送電子郵件,您的應(yīng)用將需要互聯(lián)網(wǎng)連接,因此請(qǐng)?jiān)?em>AndroidManifest.xml文件中聲明此權(quán)限。
<uses-permission android:name="android.permission.INTERNET"/>
第2步
- 在MailSender.java類中創(chuàng)建一些實(shí)例變量
// change this host name accordingly
private String mailhost = "webmail.xyz.in";
private String user;
private String password;
private Session session;
Context context;
private Multipart _multipart = new MimeMultipart();
- 現(xiàn)在,在MailSender.java文件中創(chuàng)建靜態(tài)塊以調(diào)用JSSEProvider.java類。JSSEProvider用于鏈接SSLContext,X509的KeyManagerFactory,X509的TrustManagerFactory和AndroidCAstore的修改版本。
static {
Security.addProvider(new JSSEProvider());
}
- 創(chuàng)建參數(shù)化的構(gòu)造函數(shù)(傳遞上下文,“發(fā)件人電子郵件ID”和“密碼”等)以初始化實(shí)例變量,并創(chuàng)建Properties類的對(duì)象以在構(gòu)造函數(shù)內(nèi)設(shè)置屬性。在其中傳遞上下文,用戶電子郵件ID和密碼??匆幌聵?gòu)造函數(shù)代碼。
public MailSender(Context context,String user, String password) {
this.user = user;
this.password = password;
this.context = context;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
session = Session.getDefaultInstance(props, this);
}
- 創(chuàng)建密碼驗(yàn)證器方法以驗(yàn)證您的帳戶。
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
- 最后,創(chuàng)建用戶定義的方法sendUserDetailWithImage()以將數(shù)據(jù)發(fā)送到郵件。下面的代碼從assets文件夾中提取user_profile.html,將其轉(zhuǎn)換為緩沖區(qū),然后從緩沖區(qū)中讀取它,最后將其轉(zhuǎn)換為字符串對(duì)象,用實(shí)際的用戶名替換關(guān)鍵字“
”等等。請(qǐng)參閱完整的sendUserDetailWithImage()代碼。
public synchronized void sendUserDetailWithImage(String subject, String body,
String sender, String recipients,String username,String email,String mobile,String dob,String age,String address,String profilePic ) throws Exception {
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setFrom(new InternetAddress("no-reply@astromyntra.in"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
BodyPart messageBodyPart = new MimeBodyPart();
InputStream is = context.getAssets().open("user_profile.html");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
String str = new String(buffer);
str =str.replace("$$headermessage$$","You have got a new user.");
str=str.replace("$$username$$", username);
str=str.replace("$$email$$", email);
str=str.replace("$$mobile$$", mobile);
str=str.replace("$$dob$$",dob);
str=str.replace("$$age$$",age);
str=str.replace("$$address$$", address);
messageBodyPart.setContent(str,"text/html; charset=utf-8");
_multipart.addBodyPart(messageBodyPart);
// Put parts in message
message.setContent(_multipart);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
}
看完整的MainSender.java代碼
package com.emailsender;
import android.content.Context;
import java.io.InputStream;
import java.security.Security;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.util.ByteArrayDataSource;
public class MailSender extends javax.mail.Authenticator {
// change this host name
private String mailhost = "webmail.xyz.in";
private String user;
private String password;
private Session session;
Context context;
private Multipart _multipart = new MimeMultipart();
static {
Security.addProvider(new JSSEProvider());
}
public MailSender(Context context,String user, String password) {
this.user = user;
this.password = password;
this.context = context;
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", mailhost);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");
session = Session.getDefaultInstance(props, this);
}
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
public synchronized void sendUserDetailWithImage(String subject, String body,
String sender, String recipients,String username,String email,String mobile,String dob,String age,String address,String profilePic ) throws Exception {
MimeMessage message = new MimeMessage(session);
DataHandler handler = new DataHandler(new ByteArrayDataSource(body.getBytes(), "text/plain"));
message.setFrom(new InternetAddress("no-reply@xyz.in"));
message.setSender(new InternetAddress(sender));
message.setSubject(subject);
message.setDataHandler(handler);
BodyPart messageBodyPart = new MimeBodyPart();
InputStream is = context.getAssets().open("user_profile.html");
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
String str = new String(buffer);
str =str.replace("$$headermessage$$","You have got a new user.");
str=str.replace("$$username$$", username);
str=str.replace("$$email$$", email);
str=str.replace("$$mobile$$", mobile);
str=str.replace("$$dob$$",dob);
str=str.replace("$$age$$",age);
str=str.replace("$$address$$", address);
messageBodyPart.setContent(str,"text/html; charset=utf-8");
_multipart.addBodyPart(messageBodyPart);
message.setContent(_multipart);
if (recipients.indexOf(',') > 0)
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(recipients));
else
message.setRecipient(Message.RecipientType.TO, new InternetAddress(recipients));
Transport.send(message);
}
}
第三步
要在表單中顯示數(shù)據(jù),請(qǐng)?jiān)赼ssets文件夾內(nèi)創(chuàng)建名為user_profile.html的HTML文件,然后粘貼以下代碼。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title></title>
<style type="text/css">@media only screen and (max-width:480px){body,table,td,p,a,li,blockquote{-webkit-text-size-adjust:none !important}body{width:100% !important;min-width:100% !important}td[id=bodyCell]{padding:10px !important}table.kmMobileHide{display:none !important}table[class=kmTextContentContainer]{width:100% !important}table[class=kmBoxedTextContentContainer]{width:100% !important}td[class=kmImageContent]{padding-left:0 !important;padding-right:0 !important}img[class=kmImage]{width:100% !important}td.kmMobileStretch{padding-left:0 !important;padding-right:0 !important}table[class=kmSplitContentLeftContentContainer],table[class=kmSplitContentRightContentContainer],table[class=kmColumnContainer],td[class=kmVerticalButtonBarContentOuter] table[class=kmButtonBarContent],td[class=kmVerticalButtonCollectionContentOuter] table[class=kmButtonCollectionContent],table[class=kmVerticalButton],table[class=kmVerticalButtonContent]{width:100% !important}td[class=kmButtonCollectionInner]{padding-left:9px !important;padding-right:9px !important;padding-top:9px !important;padding-bottom:0 !important;background-color:transparent !important}td[class=kmVerticalButtonIconContent],td[class=kmVerticalButtonTextContent],td[class=kmVerticalButtonContentOuter]{padding-left:0 !important;padding-right:0 !important;padding-bottom:9px !important}table[class=kmSplitContentLeftContentContainer] td[class=kmTextContent],table[class=kmSplitContentRightContentContainer] td[class=kmTextContent],table[class=kmColumnContainer] td[class=kmTextContent],table[class=kmSplitContentLeftContentContainer] td[class=kmImageContent],table[class=kmSplitContentRightContentContainer] td[class=kmImageContent]{padding-top:9px !important}td[class="rowContainer kmFloatLeft"],td.rowContainer.kmFloatLeft,td[class="rowContainer kmFloatLeft firstColumn"],td.rowContainer.kmFloatLeft.firstColumn,td[class="rowContainer kmFloatLeft lastColumn"],td.rowContainer.kmFloatLeft.lastColumn{float:left;clear:both;width:100% !important}table[class=templateContainer],table[class="templateContainer brandingContainer"],table[class=templateRow]{max-width:600px !important;width:100% !important}h1{font-size:40px !important;line-height:130% !important}h2{font-size:32px !important;line-height:130% !important}h3{font-size:24px !important;line-height:130% !important}h4{font-size:18px !important;line-height:130% !important}td[class=kmTextContent]{font-size:14px !important;line-height:130% !important}td[class=kmTextBlockInner] td[class=kmTextContent]{padding-right:18px !important;padding-left:18px !important}table[class="kmTableBlock kmTableMobile"] td[class=kmTableBlockInner]{padding-left:9px !important;padding-right:9px !important}table[class="kmTableBlock kmTableMobile"] td[class=kmTableBlockInner] [class=kmTextContent]{font-size:14px !important;line-height:130% !important;padding-left:4px !important;padding-right:4px !important}}
.tdwidth
{
width:30%;
}
.kmTable th {
text-align: left !important;
padding-left: 40px !important;
color: #cd0908 !important;
}
.kmTable td {
text-align: left !important;
padding-left: 40px !important;
}
.kmTable th:nth-child(2) {
padding-left: 10px !important;
}
.kmTable td:nth-child(2) {
padding-left: 10px !important;
}
</style>
</head>
<body style="margin:0;padding:0;background-color:#eee">
<center>
<table align="center" border="0" cellpadding="0" cellspacing="0" id="bodyTable" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding:0;background-color:#eee;height:100%;margin:0;width:100%">
<tbody>
<tr>
<td align="center" id="bodyCell" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding-top:50px;padding-left:20px;padding-bottom:20px;padding-right:20px;border-top:0;height:100%;margin:0;width:100%">
<table border="0" cellpadding="0" cellspacing="0" class="templateContainer" width="600" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;border:0 none #aaa;background-color:#fff;border-radius:0">
<tbody>
<tr>
<td class="templateContainerInner" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding:0">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tr>
<td align="center" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<table border="0" cellpadding="0" cellspacing="0" class="templateRow" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody>
<tr>
<td class="rowContainer kmFloatLeft" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<table border="0" cellpadding="0" cellspacing="0" class="kmImageBlock" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody class="kmImageBlockOuter">
<tr>
<td class="kmImageBlockInner" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding:9px;background-color:#CE0909;" valign="top">
<table align="left" border="0" cellpadding="0" cellspacing="0" class="kmImageContentContainer" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody>
<tr>
<td class="kmImageContent" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding:0;padding-top:0px;padding-bottom:0;padding-left:9px;padding-right:9px;text-align: center;">
<img align="center" alt="" class="kmImage" src="your company logo can go here" width="180" style="border:0;height:auto;line-height:100%;outline:none;text-decoration:none;padding-bottom:0;display:inline;vertical-align:bottom;max-width:180px;" />
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="kmTextBlock" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody class="kmTextBlockOuter">
<tr>
<td class="kmTextBlockInner" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;">
<table align="left" border="0" cellpadding="0" cellspacing="0" class="kmTextContentContainer" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody>
<tr>
<td class="kmTextContent" valign="top" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;padding-top:9px;padding-bottom:9px;padding-left:18px;padding-right:18px;'>
<p style="margin:0;padding-bottom:1em">Dear Admin,</p>
<p style="margin:0;padding-bottom:0">$$headermessage$$</p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="kmTableBlock kmTableMobile" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody class="kmTableBlockOuter">
<tr>
<td class="kmTableBlockInner" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding-top:9px;padding-bottom:9px;padding-left:18px;padding-right:18px;">
<table align="left" border="0" cellpadding="0" cellspacing="0" class="kmTable" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;">
<thead>
<tr>
<th valign="top" class="kmTextContent tdwidth" style='color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;padding-top:4px;font-weight:bold;padding-right:0px;padding-left:0px;padding-bottom:4px;'>
Fields
</th>
<th valign="top" class="kmTextContent" style='color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;padding-top:4px;font-weight:bold;padding-right:0px;padding-left:0px;padding-bottom:4px;'>
Details
</th>
</tr>
</thead>
<tbody>
<tr class="kmTableRow">
<td valign="top" class="kmTextContent tdwidth" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
Username
</td>
<td valign="top" class="kmTextContent" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;border-right:none;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">$$username$$</span>
</td>
</tr>
<tr class="kmTableRow">
<td valign="top" class="kmTextContent" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
Email
</td>
<td valign="top" class="kmTextContent tdwidth" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;border-right:none;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">$$email$$</span>
</td>
</tr>
<tr class="kmTableRow">
<td valign="top" class="kmTextContent tdwidth" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">Mobile No.</span>
</td>
<td valign="top" class="kmTextContent" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;border-right:none;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">$$mobile$$</span>
</td>
</tr>
<tr class="kmTableRow">
<td valign="top" class="kmTextContent tdwidth" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">Age</span>
</td>
<td valign="top" class="kmTextContent" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;border-right:none;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">$$age$$</span>
</td>
</tr>
<tr class="kmTableRow">
<td valign="top" class="kmTextContent tdwidth" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">Dob</span>
</td>
<td valign="top" class="kmTextContent" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;border-right:none;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">$$dob$$</span>
</td>
</tr>
<tr class="kmTableRow">
<td valign="top" class="kmTextContent tdwidth" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">Address</span>
</td>
<td valign="top" class="kmTextContent" style='border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;color:#222;font-family:"Helvetica Neue", Arial;font-size:14px;line-height:130%;text-align:left;border-right:none;text-align:center;;border-top-style:solid;padding-bottom:4px;padding-right:0px;padding-left:0px;padding-top:4px;border-top-color:#d9d9d9;border-top-width:1px;'>
<span style="color: #000000;">$$address$$</span>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
</tr>
<tr>
<td align="center" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<table border="0" cellpadding="0" cellspacing="0" class="templateRow" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody>
<tr>
<td class="rowContainer kmFloatLeft" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" class="templateContainer brandingContainer" width="600" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;border:0 none #aaa;background-color:transparent;border-radius:0">
<tbody>
<tr>
<td class="templateContainerInner" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding:0">
<table border="0" cellpadding="0" cellspacing="0" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tr>
<td align="center" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<table border="0" cellpadding="0" cellspacing="0" class="templateRow" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody>
<tr>
<td class="rowContainer kmFloatLeft" valign="top" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<table border="0" cellpadding="0" cellspacing="0" class="kmImageBlock" width="100%" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0">
<tbody class="kmImageBlockOuter">
<tr>
<td class="kmImageBlockInner" style="border-collapse:collapse;mso-table-lspace:0;mso-table-rspace:0;padding:9px;padding-top:25px;padding-bottom:25px;" valign="top">
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</center>
</body>
</html>
HTML代碼的輸出看起來(lái)像這樣

第四步
最后,將以下代碼粘貼到您的MainActivity中。
package com.emailsender;
import androidx.appcompat.app.AppCompatActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMail(View view)
{
new MailCreator().execute("");
}
public class MailCreator extends AsyncTask<String, String, String> {
@Override
protected String doInBackground(String... strings) {
try {
MailSender sender = new MailSender(getBaseContext(), AppsConstants.SENDER_EMAIL,AppsConstants.SENDER_PASSWORD);
sender.sendUserDetailWithImage("New User Added", "Hi", "Himanshu",
AppsConstants.RECIPEINT_MAIL, "Himanshu Verma", "xyz@gmail.com", "+91 6075959010", "02/02/1994", "25","New Delhi, India","");
} catch (Exception e) {
Log.e("SendMail", e.getMessage(), e);
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
// Toast.makeText(getActivity(),"Mail Sent",Toast.LENGTH_LONG).show();
}
}
}
結(jié)果

Data received on Gmail
注意:如果一切都很好,但仍然沒(méi)有收到電子郵件,請(qǐng)檢查您的垃圾郵件文件夾,如果該電子郵件位于此處,請(qǐng)單擊“標(biāo)記為非垃圾郵件”。
結(jié)論
我創(chuàng)建了一個(gè)Android項(xiàng)目,以電子郵件形式發(fā)送用戶數(shù)據(jù)。我已經(jīng)使用JavaMail API發(fā)送電子郵件。在本文中,我發(fā)送了HTML表單和數(shù)據(jù)。
如果您對(duì)本文有任何疑問(wèn)或疑問(wèn),請(qǐng)隨時(shí)在評(píng)論部分詢問(wèn)我。另外,您可以在我的Github帳戶上找到本文的完整源代碼。
翻譯自:https://towardsdatascience.com/send-email-with-beautiful-form-in-android-b12cd5cc9572