我想用这个代码通过javamail api发送附件。
我找到了这个类的代码,但是我不知道如何从mainactivity调用它。我是android studio的新开发人员。我已经在mainfest.xml中授予了权限。请让我知道我做错了什么,需要实现什么。非常感谢任何帮助。无法将文件作为电子邮件附件附加。
sendmail.class类
import java.io.IOException;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
public class SendEmail {
public static void main(String[] args) {
//authentication info
final String username = "........@gmail.com";
final String password = "........";
String fromEmail = "........@gmail.com";
String toEmail = "......gmail.com";
Properties properties = new Properties();
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.starttls.enable", "true");
properties.put("mail.smtp.host", "smtp.gmail.com");
properties.put("mail.smtp.port", "587");
Session session = Session.getInstance(properties, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
});
//Start our mail message
MimeMessage msg = new MimeMessage(session);
try {
msg.setFrom(new InternetAddress(fromEmail));
msg.addRecipient(Message.RecipientType.TO, new InternetAddress(toEmail));
msg.setSubject("Subject Line");
Multipart emailContent = new MimeMultipart();
//Text body part
MimeBodyPart textBodyPart = new MimeBodyPart();
textBodyPart.setText("My multipart text");
//Attachment body part.
MimeBodyPart pdfAttachment = new MimeBodyPart();
pdfAttachment.attachFile("/home/parallels/Documents/docs/javamail.pdf");
//Attach body parts
emailContent.addBodyPart(textBodyPart);
emailContent.addBodyPart(pdfAttachment);
//Attach multipart to message
msg.setContent(emailContent);
Transport.send(msg);
System.out.println("Sent message");
} catch (MessagingException e) {
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
主要活动;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//there must be a code here
}
}
暂无答案!
目前还没有任何答案,快来回答吧!