ورود

View Full Version : سوال: مشکل در ارسال ایمیل فارسی به همراه الحاق فایل



delavarmard
دوشنبه 16 مرداد 1391, 00:48 صبح
با عرض سلام خدمت برنامه نویسان گرامی من یه کد دارم که با اون توسط java se ایمیل میفرستم. اما نوشته های فارسی رو به عنوان متن ایمیل پشتیبانی نمیکنه میشه با دستکاری این امکان رو برای کدهای مورد نظر ایجاد کنید. اگر هم کدی دارید که ایمیل فارسی رو به همراه امکان الحاق فایل دارید لطفا برای من بگذارید. ممنون میشم.
import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class SendMail {
private HtmlEmail email;
private StringBuffer htmlMsg;
public HtmlEmail createEntity(String to_email, String msg_header,String msg_data, String smtp_server,String smtp_from, String smtp_user,String smtp_pwd, boolean sendMail) {
try {
email = new HtmlEmail();
email.setHostName(smtp_server);
email.addTo(to_email);
email.setFrom(smtp_from);

//If you are using Non Authenticated emails then you can ignore this part.
email.setAuthentication(smtp_user, smtp_pwd);

email = this.setRecipients(to_email, email);
htmlMsg = new StringBuffer("");
} catch (EmailException ex) {
Logger.getLogger(SendMail.class.getName()).log(Lev el.SEVERE, null, ex);
}
return email;
}

public void attachFiles(String filePath) {
try {
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(filePath);
// attachment.setDisposition(EmailAttachment.ATTACHME NT);
// attachment.setDisposition(EmailAttachment.INLINE);
// attachment.setDescription(desc);
// attachment.setName(name);
email.attach(attachment);

} catch (EmailException ex) {
Logger.getLogger(SendMail.class.getName()).log(Lev el.SEVERE, null, ex);
}

}

public void embedImage(String filePath) {
try {
String cid = email.embed(new File(filePath));
htmlMsg.append("<img src=\"cid:" + cid + "\">");

} catch (EmailException ex) {
Logger.getLogger(SendMail.class.getName()).log(Lev el.SEVERE, null, ex);
}
}

public void addMsg(String msg) {
htmlMsg.append(msg);
}

public void addSubj(String subj) {
email.setSubject(subj);
}

public void SendMail_HTML() {
try {
email.setHtmlMsg(htmlMsg.toString());
// email.setFrom("پدر", "mail.mime.charset", "utf8");
// System.setProperty("mail.mime.charset", "utf8");
email.setTextMsg("Your email client does not support HTML messages");
email.send();

} catch (Exception e) {
e.printStackTrace();
System.exit(1);
}
}

public HtmlEmail setRecipients(String recipients, HtmlEmail email)throws EmailException
{
String recipientsArray[] = null;
if (recipients != null) {
recipientsArray = recipients.split(",");
}
String as[] = recipientsArray;
for (int i = 0; i < as.length; i++) {
String recipient = as[i];
email.addTo(recipient);
}
return email;
}
public static String sendemail( String mailbody ,String sendto , String fileurl , String imageurl , String mailsubject)
{
SendMail mailObj = new SendMail();
mailObj.createEntity(sendto, "msg_header", "msg_data", "smtp host", "senderemailaddress", "user", "pass", false);
mailObj.addSubj(mailsubject);
mailObj.embedImage(imageurl);
mailObj.addMsg("<BR>"+mailbody);
mailObj.attachFiles(fileurl);
mailObj.SendMail_HTML();
String msgk = "پیام با موفقیت ارسال شد";
return msgk;
}
}
با این دستور هم در برنامه اونو فراخوانی می کنم.
SendMail.sendemail( "mailbody" , "sendto" , "fileurl" , "imageurl" , "mailsubject")