Javamailについては、Javamailで電子メールを送信しました。将来の使用の便利さのために、私は自分でコードの一部を書き、将来の使用の利便性のためにJARパッケージに入力しました。 hehe
次の3つのコードはすべて私のコードを使用します。 JarパッケージをJavaeyeにアップロードする方法がわからないので、友人は戻って自分で作ることです。
私のコードには3つのクラスがあります。
ファーストクラス:mailsenderinfo.java
コードコピーは次のとおりです。
パッケージcom.util.mail;
/**
*電子メールの送信に必要な基本情報
*/
java.util.propertiesをインポートします。
Public Class MailSenderInfo {
//メールを送信するサーバーのIPとポート
Private String MailServerHost;
private string mailserverport = "25";
//電子メールの送信者のアドレス
Addressからプライベート文字列;
//電子メール受信者のアドレス
プライベートストリングトードレス;
//メール送信サーバーのユーザー名とパスワードにログイン
プライベート文字列ユーザー名;
プライベート文字列パスワード。
//認証が必要です
プライベートブール検証= false;
//件名にメールします
プライベート文字列の件名;
//電子メールのテキストコンテンツ
プライベート文字列コンテンツ。
//電子メールの添付ファイルのファイル名
private string [] attachFileNames;
/**
*メールセッションの属性を取得します
*/
public Properties getProperties(){
プロパティp = new Properties();
p.put( "mail.smtp.host"、this.mailserverhost);
p.put( "mail.smtp.port"、this.mailserverport);
p.put( "mail.smtp.auth"、validate? "true": "false");
pを返します。
}
public string getMailServerHost(){
Return MailServerHost;
}
public void setMailServerHost(String MailServerHost){
this.mailserverhost = mailserverhost;
}
public string getMailServerPort(){
Return MailServerport;
}
public void setMailServerport(String MailServerport){
this.mailserverport = mailserverport;
}
public boolean isvalidate(){
検証を返します。
}
public void setValidate(boolean validate){
this.validate = validate;
}
public string [] getattachfileNames(){
AttachFileNamesを返します。
}
public void setattachfilenames(string [] filenames){
this.attachfileNames = filenames;
}
public string getFromAddress(){
Addressから戻る;
}
public void setfromAddress(String FromAddress){
this.fromAddress = fromDdress;
}
public string getPassword(){
パスワードを返します。
}
public void setpassword(string password){
this.password = password;
}
public string getToAddress(){
Toaddressを返します。
}
public void SettoAddress(String Toaddress){
this.toAddress = toAddress;
}
public string getUsername(){
ユーザー名を返します。
}
public void setusername(string username){
this.username = username;
}
public string getSubject(){
件名を返す;
}
public void setSubject(string subject){
this.subject = subject;
}
public string getContent(){
コンテンツを返す;
}
public void setContent(String TextContent){
this.content = textContent;
}
}
2番目のクラス:simplemailsender.java
コードコピーは次のとおりです。
パッケージcom.util.mail;
Import Java.util.date;
java.util.propertiesをインポートします。
javax.mail.addressをインポートします。
javax.mail.bodypartをインポートします。
javax.mail.messageをインポートします。
javax.mail.messagingexceptionをインポートします。
javax.mail.multipartをインポートします。
javax.mail.sessionをインポートします。
javax.mail.transportをインポートします。
javax.mail.internet.internetaddressをインポートします。
javax.mail.internet.mimebodypartをインポートします。
javax.mail.internet.mimemessageをインポートします。
javax.mail.internet.mimemultipartをインポートします。
/**
* Simple Mail(添付ファイルなしのメール)送信者
*/
パブリッククラスSimpleMailsender {
/**
*テキスト形式でメールを送信します
* @parammailinfo送信されるメールに関する情報
*/
public boolean sendtextmail(mailsenderinfo mailinfo){
// ID認証が必要かどうかを判断します
myAuthenticator Authenticator = null;
Properties Pro = MailInfo.getProperties();
if(mailinfo.isvalidate()){
// ID認証が必要な場合は、パスワードAuthenticatorを作成します
Authenticator = new MyAuthenticator(MailInfo.getUsername()、MailInfo.getPassWord());
}
//電子メールセッションのプロパティとパスワードバリーターに基づいて電子メールを送信するセッションを構築する
SESSION SENDMAILSESSION = SESSION.GETDEFAULTINSTANCE(Pro、Authenticator);
試す {
//セッションに基づいてメールメッセージを作成します
Message MailMessage = new Mimemessage(sendMailsession);
//電子メール送信者アドレスを作成します
from = new InternetAddress(MailInfo.getFromAddress());
//電子メールメッセージの送信者を設定します
mailmessage.setfrom(from);
//メールの受信者アドレスを作成し、電子メールメッセージに設定します
アドレス= new InternetAddress(MailInfo.getToAddress());
mailmessage.setrecipient(message.recipientType.to、to);
//電子メールメッセージの件名を設定します
mailmessage.setsubject(mailinfo.getSubject());
//電子メールメッセージを送信する時間を設定します
mailmessage.setsentdate(new date());
//電子メールメッセージのメインコンテンツを設定します
string mailcontent = mailinfo.getContent();
mailmessage.settext(mailcontent);
//メールを送信します
Transport.send(mailmessage);
trueを返します。
} catch(messagingexception ex){
ex.printstacktrace();
}
falseを返します。
}
/**
* HTML形式でメールを送信します
* @parammailinfoメール情報が送信されます
*/
public static boolean sendhtmlmail(mailsenderinfo mailinfo){
// ID認証が必要かどうかを判断します
myAuthenticator Authenticator = null;
Properties Pro = MailInfo.getProperties();
// ID認証が必要な場合は、パスワードAuthenticatorを作成します
if(mailinfo.isvalidate()){
Authenticator = new MyAuthenticator(MailInfo.getUsername()、MailInfo.getPassWord());
}
//電子メールセッションのプロパティとパスワードバリーターに基づいて電子メールを送信するセッションを構築する
SESSION SENDMAILSESSION = SESSION.GETDEFAULTINSTANCE(Pro、Authenticator);
試す {
//セッションに基づいてメールメッセージを作成します
Message MailMessage = new Mimemessage(sendMailsession);
//電子メール送信者アドレスを作成します
from = new InternetAddress(MailInfo.getFromAddress());
//電子メールメッセージの送信者を設定します
mailmessage.setfrom(from);
//メールの受信者アドレスを作成し、電子メールメッセージに設定します
アドレス= new InternetAddress(MailInfo.getToAddress());
// message.recipientType.to属性は、受信者のタイプが
mailmessage.setrecipient(message.recipientType.to、to);
//電子メールメッセージの件名を設定します
mailmessage.setsubject(mailinfo.getSubject());
//電子メールメッセージを送信する時間を設定します
mailmessage.setsentdate(new date());
// minimultipartクラスは、タイプmimebodypartのオブジェクトを含むコンテナクラスです
MultiPart MainPart = new Mimemultipart();
// HTMLコンテンツを含むMimeBodyPartを作成します
BodyPart HTML = new MimeBodyPart();
// HTMLコンテンツを設定します
html.setcontent(mailinfo.getContent()、 "text/html; charset = utf-8");
mainPart.AddBodyPart(HTML);
// minimultipartオブジェクトをメールコンテンツに設定します
mailmessage.setContent(MainPart);
//メールを送信します
Transport.send(mailmessage);
trueを返します。
} catch(messagingexception ex){
ex.printstacktrace();
}
falseを返します。
}
}
3番目のカテゴリ:myauthenticator.java
コードコピーは次のとおりです。
パッケージcom.util.mail;
javax.mail。*;
Public Class MyAuthenticatorはAuthenticatorを拡張します{
文字列username = null;
文字列パスワード= null;
public myauthenticator(){
}
public MyAuthenticator(string username、string password){
this.username = username;
this.password = password;
}
protected passwordAuthentication getPassWordAuthentication(){
新しいPasswordAuthentication(ユーザー名、パスワード)を返します。
}
}
以下は、上記の3つのクラスを使用したコードです。
コードコピーは次のとおりです。
public static void main(string [] args){
//このクラスは主に電子メールをセットアップします
MailSenderInfo MailInfo = new MailSenderInfo();
MailInfo.setMailServerHost( "smtp.163.com");
MailInfo.setMailServerport( "25");
MailInfo.setValidate(true);
MailInfo.setUsername( "[email protected]");
MailInfo.setPassWord( "*********"); //メールパスワード
MailInfo.setFromAddress( "[email protected]");
mailinfo.settoaddress( "[email protected]");
MailInfo.setSubject( "Set Mailboxタイトル");
MailInfo.setContent( "Mailboxコンテンツの設定");
//このクラスは主に電子メールを送信します
SimpleMailsender SMS = new SimpleMailSender();
sms.sendtextmail(mailinfo); //テキスト形式を送信します
sms.sendhtmlmail(mailinfo); // html形式を送信します
}
最後に、次のように注意しましょう。
1.このコードを使用して、Javamailの電子メール送信機能を完了することができます。 3つのカテゴリはすべて不可欠です。
2. com.util.mailパッケージを使用して、これらの3つのクラスをパッケージ化する場合は、自分で変更できますが、3つのクラスファイルは同じパッケージに含まれている必要があります。
3.登録したばかりのメールアドレスを使用して、163の電子メールアドレスが登録されている場合は、「smtp.163.com」を使用しないでください。あなたはそれを送ることができないからです。登録したばかりのメールアドレスは、そのような許可を与えません。つまり、確認に合格することはできません。頻繁に使用するメールアドレスを使用する必要があり、長い時間がかかります。
4.もう1つの問題は、mailinfo.setmailserverhost( "smtp.163.com")の2つの文です。つまり、163SMTPサーバーを使用する場合、163の電子メールアドレスを使用して電子メールアドレスを送信する必要があります。
5. Javamailの検証エラーについては、インターネット上に多くの説明がありますが、1つだけが表示されます。それは私の3番目のカテゴリーです。すべてのコードをコピーする限り、問題はないと思います。