[英]sending image attachment as .jpg instead of .file using JavaMail
In my android application I am sending a .jpg
image as an attachment using JavaMail
, it works fine but the problem is that the image is recieved as .file
instead of .jpg
, I haved tried to used messageBodyPart.setHeader("Content-ID","<image>");
在我的Android应用程序中,我使用
JavaMail
将.jpg
图像作为附件发送,效果很好,但问题是该图像被接收为.file
而不是.jpg
,我曾尝试使用messageBodyPart.setHeader("Content-ID","<image>");
but still the image is recieved as .file
. 但该图像仍被接收为
.file
。 So please help, how can I make my code to send image as .jpg
instead of .file
. 因此,请提供帮助,如何使我的代码将图像以
.jpg
而不是.file
发送。
Code: 码:
import android.content.Context;
import android.os.AsyncTask;
import java.io.File;
import java.util.Properties;
import android.os.Environment;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Authenticator;
import javax.mail.BodyPart;
import javax.mail.Message;
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 EmailHandler extends AsyncTask<Void, Void, Boolean> {
private static String to = "receiver@gmail.com";
private static String from = "senderp@gmail.com";
private static String subject = "Subject";
private static String sender = "Sender";
private static String mail;
private static String username = "sender";
private static String password = "pasword";
@Override
protected Boolean doInBackground(Void... nothing) {
try {
Authenticator auth = new EmailAutherticator();
Properties properties = new Properties();
properties.setProperty("mail.smtp.auth", "true");
properties.setProperty("mail.smtp.starttls.enable", "true");
properties.setProperty("mail.smtp.host", "smtp.gmail.com");
properties.setProperty("mail.smtp.port", "587");
properties.setProperty("mail.smtp.user", username);
properties.setProperty("mail.smtp.password", password);
Session session = Session.getDefaultInstance(properties,auth);
MimeMessage message = new MimeMessage(session);
Address address = new InternetAddress(from,sender);
message.setFrom(address);
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
message.setSubject(subject);
message.setText("JPG Image Test");
MimeMultipart multipart = new MimeMultipart();
MimeBodyPart messageBodyPart = new MimeBodyPart();
String pic = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES)+ File.separator+"picture0"+".jpg";
DataSource source = new FileDataSource(pic);
messageBodyPart.setDataHandler(new DataHandler(source0));
messageBodyPart.setHeader("Content-ID","<image>");
messageBodyPart.setFileName("Theft back");
multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
Transport.send(message);
return true;
}
catch(Exception exp) {
exp.printStackTrace();
return false;
}
}
}
class EmailAutherticator extends Authenticator {
private String username = "sender";
private String password = "password";
public EmailAutherticator() {
super();
}
public EmailAutherticator(String user,String pwd){
super();
username = user;
password = pwd;
}
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username,password);
}
}
Add .jpg
extension to file name. 将
.jpg
扩展名添加到文件名。
messageBodyPart.setFileName("Theft back.jpg");
instead of 代替
messageBodyPart.setFileName("Theft back");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.