1、创建邮件——RFC822文档
邮件头和邮件体,两者使用空行分隔
邮件头
from字段
to字段
subject字段
cc、bcc字段
邮件体
邮件内容
使用java代码写邮件
public class SendMailSocket {
public static void main(String[] args) throws UnknownHostException, IOException {
Socket sc=new Socket("smtp.sohu.com",25);
//输出流
OutputStream os=sc.getOutputStream();
//输入流
BufferedReade bf=new BufferedReader(new InputStreamReader(sc.getInputStream()));
System.out.println(bf.readLine());
os.write("ehlo ..\r\n".getBytes());//输入主机名
System.out.println(bf.readLine());
System.out.println(bf.readLine());
System.out.println(bf.readLine());
os.write("auth login\r\n".getBytes());
System.out.println(bf.readLine());
os.write("cmVkYXJteWNzZG4=\r\n".getBytes());//加密后的用户名
System.out.println(bf.readLine());
os.write("cmVkYXJteWNzZG4=\r\n".getBytes());//加密后的密码
System.out.println(bf.readLine());
//邮件发送地址
os.write("mail from:<*****@sohu.com>\r\n".getBytes());
System.out.println(bf.readLine());
//邮件接受地址
os.write("rcpt to:<******.com>\r\n".getBytes());
System.out.println(bf.readLine());
os.write("data\r\n".getBytes());
System.out.println(bf.readLine());
//邮件内容
os.write("ni hao *****\r\n".getBytes());
os.write(".\r\n".getBytes());
System.out.println(bf.readLine());
//退出
os.write("quit\r\n".getBytes());
bf.close();
os.close();
sc.close();
}
}
2、创建邮件—— MIME协议
MIME协议是对RFC822文档的升级和补充,它描述了如何生成一封复杂邮件。通常我们把MIME协议描述的邮件称之为MIME邮件,MIME协议描述的数据称之为MIME消息。对于一封复杂邮件,如果包含了多个不同的数据,MIME协议规定了要使用分隔线对多段数据进行分隔,并使用Content-Type头字段对数据的类型、以及多个数据之间的关系进行描述。(查看outlook邮件源文件)
3、MIME协议常用头字段
Content-ID头字段用于为“multipart/related”组合消息中的内嵌资源指定一个唯一标识号,在HTML格式的正文中可以使用这个唯一标识号来引用该内嵌资源。例如,假设将一个表示内嵌图片的MIME消息的Content-ID头字段设置为如下形式: Content-ID: it315logo_gif那么,在HTML正文中就需要使用如下HTML语句来引用该图片资源: <img src="cid:it315logo_gif"> 注意,在引用Content-ID头字段标识的内嵌资源时,要在资源的唯一标识号前面加上“cid:”,以说明要采用唯一标识号对资源进行引用。
4、使用JavaMail API创建邮件
(1)创建简单邮件
//1、创建邮件
Properties props = new Properties(); //设置属性
Session session = Session.getInstance(props); //创建session
MimeMessage message = new MimeMessage(session);
//2、设置邮件属性
message.setFrom(new InternetAddress("aa@xiaoli.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("bb@xiaoli.com"));
message.setSubject("HiRedarmy");
//3、正文
MimeBodyPart part = new MimeBodyPart();
part.setContent("xxxxxxxxxxxx", "text/html");
//content.setText("xxxxxxxx", "utf8");
//4、描述关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(part);
//设置关系
message.setContent(mm);
message.saveChanges();
message.writeTo(new FileOutputStream("D:\\1.eml"));
(2)创建包含内嵌图片的邮件
//1、创建邮件
MimeMessage message = new MimeMessage(Session.getInstance(new Properties()));
//2、设置邮件属性
message.setFrom(new InternetAddress("redarmy@xiaoli.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xiaoli@redarmy.com"));
message.setSubject("呵呵呵呵呵呵呵呵呵呵..");
//3、创建正文
MimeBodyPart text = new MimeBodyPart();
text.setContent("xxx<br/><br/><img src='cid:xx.jpg'>xxxxx", "text/html;charset=gb2312");
//4、创建一个图片
MimeBodyPart image = new MimeBodyPart();
image.setDataHandler(new DataHandler(new FileDataSource("src\\f.jpg")));
image.setContentID("xx.jpg");
//5、创建描述关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
//6、设置关系
mm.setSubType("related");
message.setContent(mm);
message.saveChanges();
message.writeTo(new FileOutputStream("D:\\2.eml"));
创建包含附件的邮件
//1、创建邮件
MimeMessage message = new MimeMessage(Session.getInstance(new Properties()));
//2、设置邮件属性
message.setFrom(new InternetAddress("redarmy@xiaoli.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xiaoli@redarmy.com"));
message.setSubject("啊啊啊啊啊啊啊..");
MimeBodyPart text= new MimeBodyPart();
text.setContent("xxx<br/><br/><img src='cid:xx.jpg'>xxxxx", "text/html;charset=gb2312");
MimeBodyPart attch= new MimeBodyPart();
attch.setDataHandler(new DataHandler(new FileDataSource("src\\1.mp3")));
attch.setFileName("1.mp3");
//4、创建描述关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(attch);
//5、设置关系
mm.setSubType("mixed");
message.setContent(mm);
message.saveChanges();
message.writeTo(new FileOutputStream("d:\\3.eml"));
包含内嵌图片和附件的复杂邮件
//1、创建邮件
MimeMessage message = new MimeMessage(Session.getInstance(new Properties()));
//2、设置邮件的属性
message.setFrom(new InternetAddress("redarmycsdn@sina.com"));
message.setRecipient(Message.RecipientType.TO, new InternetAddress("xx@sina.com"));
message.setSubject("世界上最复杂的邮件");
//3、设置正文
MimeBodyPart text = new MimeBodyPart();
text.setContent("xxxxxxx<br/><img src='cid:xx.jpg'><br/>xxxxxx","text/html;charset=gb2312");
//4、设置图片
MimeBodyPart image = new MimeBodyPart();
DataHandler dh = new DataHandler(new FileDataSource("src\\f.jpg"));
image.setDataHandler(dh);
image.setContentID("xx.jpg");
//5、设置附件
MimeBodyPart attch = new MimeBodyPart();
DataHandler dh1 = new DataHandler(new FileDataSource("src\\大笑.mp3"));
attch.setDataHandler(dh1);
String filename = dh1.getName();
attch.setFileName(MimeUtility.encodeText(filename));
//6、描述关系
//图片与正文的描述关系
MimeMultipart mm = new MimeMultipart();
mm.addBodyPart(text);
mm.addBodyPart(image);
mm.setSubType("related");
//图片与正文的 bodypart
MimeBodyPart part = new MimeBodyPart();
part.setContent(mm);
//附件与以上的bodypart关系
MimeMultipart m = new MimeMultipart();
m.addBodyPart(part);
m.addBodyPart(attch);
m.setSubType("mixed");
//把MIME消息设置到message中
message.setContent(m);
message.saveChanges();
message.writeTo(new FileOutputStream("d:\\66.eml"));
分享到:
相关推荐
本文主要利用微软的最新.net开发工具为大家展示创建邮件发送程序的方法,为大家介绍怎样向指定的邮件地址发送邮件,以及登录验证的一些技巧。很适合.net开发工具的初学者,具有一定的实用价值。
邮件列表可以理解为用户组,就是为具有相同属性,比如同一部门,同一项目组等创建邮件列表,如果有一封邮件需要发送给该部门的所有用户,那么如果该部门用户很多,就可以创建一个用户列表来包含这个部门的所有用户...
主要介绍了JavaWeb中JavaMail创建邮件和发送邮件,较为详细的分析了JavaMail发送邮件的用法,是非常实用的技巧,需要的朋友可以参考下
百里香邮递 Thymeleaf 方言有助于创建邮件链接。 锚标签 "" 支持的属性是: mail:to :电子邮件的收件人字段mail:bcc : mail:bcc的 bcc 字段mail:cc : mail:cc的抄送字段mail:subject : mail:subject的主题字段mail:...
// 创建邮件复杂体正文信息 msgMultipart.addBodyPart(content); // 将正文信息添加到复杂体中 MimeMultipart bodyMultipart = new MimeMultipart("related"); content.setContent(bodyMultipart); ...
创建邮件对象:使用email模块创建一个邮件对象。设置邮件的发件人、收件人、主题等信息。 添加正文内容:使用email模块的MIMEMultipart和MIMEText类,创建一个包含文本内容的邮件部分。将正文文本添加到邮件对象中...
主要介绍了JavaMail入门教程之创建邮件的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
// 创建邮件消息 objMailMessage = new MailMessage(); objMailMessage.From = "mysina@sina.com";//源邮件地址 objMailMessage.To = "scucj@126.com";//目的邮件地址,也就是发给我哈 objMailMessage....
用户可使用这种包创建邮件用户代理(Mail User Agent,MUA)类型的程序,它类似于Foxmail、Eudora以及Miceosoft Outlook这些邮件程序。其主要目的不是像发送邮件或其他邮件传输代理(Mail Transfer Agent,MTA)类型...
使用此应用程序,可以使用带有Mailgun帐户的DPSG纳米中的邮件地址自动创建邮件列表。 此外,您可以看到Nami成员(拥有读取权限),以便您可以快速检查是否为每个成员分配了地址。 MailMi API密钥和NaMi的登录数据...
创建邮件对象(Message) * 3.发送邮件Transport * */ //1.获得连接 Properties props = new Properties();//认证信息 //authenticator 接口信息 Session session = Session.getInstance(props, new...
SAP系统邮件配置操作手册.doc
42. // 创建邮件的接收者地址,并设置到邮件消息中 43. Address to = new InternetAddress(mailInfo.getToAddress()); 44. mailMessage.setRecipient(Message.RecipientType.TO,to); 45. // 设置邮件消息的...
团队激烈的邮件API 为Team Fierce创建邮件微服务的后端任务API的端点POST-/ v1 / sendmail POST-/ v1 / sendmailwithtemplate POST-/ v1 / configure POST-/ v1 / register GET-/ GET-/ v1 / documentation安装克隆...
一个简单的PHP邮件管理器,有详细的注释以及开发文档。
电子邮件的应用非常广泛,常见的如在某网站注册了...很显然这些应用不可能和我们自己平时发邮件一样,先打开浏览器,登录邮箱,创建邮件再发送.简单介绍如何通过 Java 代码来创建电子邮件,并连接邮件服务器发送邮件。
基于控制台的邮件发送程序,可发送文件,可在配置文件配置账号密码SMTP等基础信息。
创建邮件账户(邮件账户就是Linux系统的系统用户: useradd mail1 #创建mail1用户 useradd mail2 #创建mail2用户 passwd mail1 #设置mail1用户的密码(根据提示输入两遍) passwd mail2 #设置mail2用户的密码(根据...
基于JSP,应用JavaMail API创建邮件用户代理邮件系统的实例。