最近两天,很巧,又写delphi的电子邮件客户端,还写了Java的电子邮件发送的小程序,一个是工作需要,另一个则是帮朋友的忙,有点巧.
1.Java的电子有件发送程序
SendMailBean.java
package adu.com.kingsoft;
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class SendMailBean {
private String form;
private String to;
private String hostName;
private String port;
private String userName;
private String password;
private String subject;
private String body;
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getForm() {
return form;
}
public void setForm(String form) {
this.form = form;
}
public String getHostName() {
return hostName;
}
public void setHostName(String hostName) {
this.hostName = hostName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPort() {
return port;
}
public void setPort(String port) {
this.port = port;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public boolean sendMail(){
Properties props=new Properties();
// props.put("mail.smtp.protocol","smtp");
props.put("mail.smtp.host",hostName);
props.put("mail.smtp.auth","true");
props.put("mail.smpt.port",port);
Session mailsession=Session.getInstance(props,null); //得到一个发送邮件的会话
Message msg=new MimeMessage(mailsession);
try{
msg.setFrom(new InternetAddress(this.getForm()));
msg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(this.getTo()));
msg.setSubject(this.getSubject());
msg.setSentDate(new Date());
msg.setText(this.getBody());
Transport transport = mailsession.getTransport("smtp");
transport.connect(this.getHostName(),this.getUserName(),this.getPassword());
transport.sendMessage(msg,msg.getRecipients(Message.RecipientType.TO));
// System.out.println("邮件以成功发送到dushengjun@gmail.com");
transport.close();
return true;
}catch(Exception e)
{
System.out.println("产生异常:"+e);
return false;
}
}
}
JavaMailApp .java
package adu.com.kingsoft;
import java.util.Date;
import java.util.Properties;
public class JavaMailApp {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("正在准备发送.....");
SendMailBean smb=new SendMailBean();
smb.setUserName("dushengjun");
smb.setForm("dushengjun@kingsoft.net");
smb.setHostName("mail.kingsoft.net");
smb.setPassword("***************");
smb.setPort("25");
smb.setTo("dushengjun@gmail.com");
smb.setSubject("你好");
smb.setBody("你好 Java");
if(smb.sendMail())
System.out.println("发送成功");
else
System.out.println("发送失败");
}
}
同时将如下的包加到classpath中:
activation.jar,dsn.jar,imap.jar,mailapi.jar,pop3.jar,smtp.jar
可以测试了,运行一下JavaMailApp 吧
2.Delphi的电子邮件客户端实现
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdMessageClient, IdSMTP, IdMessage, ComCtrls;
type
TForm1 = class(TForm)
idSMTP: TIdSMTP;
Button1: TButton;
idMessage: TIdMessage;
letter_subject: TEdit;
me_content: TRichEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
receiver_address: TEdit;
Label4: TLabel;
me_address: TEdit;
me_pwd: TLabel;
mypassword: TEdit;
Label5: TLabel;
me_port: TEdit;
myHostName: TEdit;
Label6: TLabel;
Edit1: TEdit;
Label7: TLabel;
Button2: TButton;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
subject :String;
rec_address :String;
self_address :String;
password :String;
content :String;
port :Integer;
hostName :String;
begin
subject:=letter_subject.Text;
rec_address:=receiver_address.Text;
self_address:=me_address.Text;
port:=StrToInt(me_port.Text);
password:=mypassword.text;
hostName:=myHostName.Text;
content:=me_content.text;
if idMessage = NIL then
idMessage.Create(Form1);
if idSMTP=NIL then
idSMTP.Create(Form1);
TIdAttachment.Create(IdMessage.MessageParts,edit1.Text);
IdMessage.Body.Assign(me_content.lines);
IdMessage.From.Text := self_address;
IdMessage.ReplyTo.EMailAddresses := self_address;
IdMessage.Recipients.EMailAddresses := rec_address;
IdMessage.Subject := subject;
idSMTP.AuthenticationType := atLogin;
// idSMTP.AuthenticationType:=atNone;
idSMTP.Username := self_address;
idSMTP.Password := password;
idSMTP.Host :=hostName;
idSMTP.Port := port;
try
idSMTP.Connect;
idSMTP.Send(idMessage);
//idSMTP.DisconnectSocket;
idSMTP.Disconnect;
//idSMTP.Destroy;
showmessage('send mail ok');
except
//idSMTP.Destroy;
//idMessage.Destroy;
showmessage('mail send false');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if(openDialog1.Execute) then
begin
Edit1.Text:=opendialog1.FileName;
end;
end;
end.
分享到:
相关推荐
本文将详细介绍如何使用Java实现简单的邮件发送。 首先,Java邮件发送依赖于JavaMail API,这是一个用于处理邮件的开源库,它允许开发者通过编程方式发送、接收和管理邮件。要实现邮件发送,你需要以下几个关键步骤...
在这个主题下,我们将探讨三种Java实现邮件发送的方式,以及如何通过提供的代码和参考资料进行实践。 首先,让我们了解一下基本概念。邮件发送主要涉及到SMTP(Simple Mail Transfer Protocol)和POP3(Post Office...
本教程将详细介绍如何使用Java实现邮件发送功能,同时提供了一个Jar包和demo源码供参考。 首先,我们需要理解JavaMail API,这是一个Java平台上的邮件处理库,它提供了发送和接收电子邮件的能力。JavaMail API 包含...
本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...
本文将详细讲解如何使用Java实现邮件自动发送,并基于提供的两个源码文件`mailFor163`和`mailForSina`进行解析。 首先,Java Mail API是Java发送邮件的核心库,它提供了丰富的接口和类来处理邮件协议,如SMTP(简单...
在本案例中,我们将关注如何使用Java Socket来实现SMTP(Simple Mail Transfer Protocol)邮件发送,并支持SSL(Secure Sockets Layer)和TLS(Transport Layer Security)安全协议。 SMTP是一种互联网标准,用于在...
本教程将深入讲解如何利用Java实现邮件的发送,并包含身份验证的过程,这对于自动化任务、通知系统或者任何需要通过电子邮件进行通信的应用来说是至关重要的。 首先,我们来了解计算机网络中的Socket编程。Socket是...
Java 实现模板邮件发送是一项常见的任务,特别是在企业级应用中,用于批量发送通知、报告或者验证码等。在本文中,我们将深入探讨如何使用Java来创建和发送带有模板的电子邮件。 首先,我们需要理解Java中用于邮件...
本教程将深入探讨如何使用纯Java流实现邮件发送功能,重点在于理解邮件协议和如何处理文件传输。 首先,我们需要了解JavaMail API,这是一个开源库,提供了与多种邮件协议(如SMTP、POP3和IMAP)交互的接口。在Java...
本文将深入探讨如何使用JavaMail API在Java应用程序中实现发送邮件的功能,同时也会涉及验证码验证以及网页版邮件发送的实现。 首先,要发送邮件,我们需要引入JavaMail的相关库。通常,这包括`javax.mail`和`javax...
### Java实现发送邮件知识点详解 #### 一、引言 电子邮件是互联网中最为常见的通信方式之一,被广泛应用于用户激活、密码重置、营销推广等多个场景。为了满足自动化的需求,通常采用程序化的方式进行邮件的发送。...
首先,Java发送邮件主要依赖于JavaMail API,这是一个开源的Java库,它提供了标准的JavaMail API规范,允许开发者发送、接收和处理邮件。在发送Outlook邮件时,我们通常不是直接与Outlook交互,而是使用SMTP(Simple...
Java编程语言提供了丰富的库来实现...在提供的压缩包文件"邮件发送"中,可能包含了上述示例代码的完整实现,你可以下载并参考这些代码来更好地理解邮件发送的Java实现。希望这个教程对你在开发过程中发送邮件有所帮助。
这个"java实现发送邮件jar文件"是JavaMail的一个实现,封装了SMTP(简单邮件传输协议)和其他相关协议,使得开发者能够轻松地集成邮件功能到他们的项目中。 在Java中实现邮件发送,首先需要引入JavaMail的相关依赖...
本教程将深入探讨如何使用Java实现这一功能。Java提供了多种库来处理邮件发送,其中最常用的便是JavaMail API。 JavaMail API是Java平台上用于发送和接收电子邮件的标准API,它提供了丰富的接口和类来处理邮件协议...
以下是一个简单的邮件发送示例: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailSender { public static void main(String[] args) throws Exception { // 设置SMTP服务器和...
本文将详细讲解如何使用Java实现发送邮件的功能,并基于给出的描述和标签,我们将深入探讨相关的JavaMail API及其使用方法。 首先,JavaMail API是Java平台上的一个开源库,它提供了一系列接口和类,用于处理邮件的...
Java邮件发送是一个常见的任务,尤其在自动化通知、用户...这个压缩包"Java邮件发送.zip"可能包含了实现以上功能的示例代码,供你参考和学习。通过理解和实践这些知识点,你可以熟练掌握在Java环境中发送邮件的方法。
在`Mail_class.java`文件中,我们将实现以下四种类型的邮件发送: 1. **发送纯文本邮件**: 要发送纯文本邮件,你需要创建一个`Properties`对象来设置SMTP服务器的相关属性,然后通过`Session`对象初始化邮件会话...