建立SMTP伺服器發送匿名郵件
1. 系統:Windows XP/2000
2. 安裝設定服務端
Windows XP和2000本身就擁有構件SMTP伺服器的功能,隻是一般還沒有安裝。選擇“控制台→添加/删除程式→添加/删除Windows元件”,彈出“Windows元件向導”對話框,在其中輕按兩下“Internet資訊服務(IIS)”項,就會打開詳細選擇項,選中“SMTP Service”,按“确定”,插入Windows XP安裝盤進行安裝(如圖1)。
圖1
安裝好SMTP伺服器後,選擇“控制台→性能和維護→管理工具→Internet資訊服務”打開Internet資訊服務設定視窗,在視窗左側點選本地計算機名,展開本地計算機目錄,可以看到有兩個分支“Wed站點”和“預設SMTP虛拟伺服器”。在“預設SMTP虛拟伺服器”上點選滑鼠右鍵選擇“屬性”,打開“預設SMTP虛拟伺服器屬性”視窗。
“正常”頁籤主要設定IP位址,單擊IP位址下拉項選擇“127.0.0.1”,表示指向本地計算機IP位址,其他項使用預設即可。如果你是區域網路接入,擁有固定IP位址,那麼IP位址就應該選擇相應的位址(如圖2)。
圖2
“通路”頁籤中設定通路權限。單擊“身份驗證”,選擇“匿名通路”,表示任何使用者都可以發送,其他兩項不用選擇;單擊“連接配接控制”中的“連接配接”和“中段限制”中的“中斷”,選中“僅以下清單除外”,表示可以許接入所有使用者的通路。
“郵件”頁籤中設定郵件傳輸條件及限制,“限制郵件大小為”等四個選項可以使用預設值,無須更改;
“将未傳遞報告的副本發送到”可将發送不成功的郵件傳回發件人,并且寫明不成功的原因;“死信目錄”設定沒有發送成功的郵件被存放的位置。
“傳輸”選項中設定郵件傳遞時間,這裡不用修改,使用預設值;“LDAP路由”選項用來指定伺服器使用的目錄伺服器辨別和屬性,這裡也不用啟動它。
“安全”選項中設定使用發送伺服器的有權使用者,預設使用者是“Administrators”,你可以單擊“添加”添加使用使用者。
一切設定好後,你就擁護了自己的郵件發送伺服器了!下面我們來看看在Outlook Express和Foxmail中如何設定使用自己的SMTP來發信。
3. 設定用戶端軟體
打開Outlook Express,選擇“工具→賬号→郵件”,選中帳号點“屬性”,在“伺服器”标簽下的“發送郵件(SMTP)”中輸入“127.0.0.1”,即本機位址(如圖3),“我的伺服器需要身份驗證”不選擇。
在Foxmail中選擇需要設定本機發信的帳号,然後選擇“帳号→屬性→郵件伺服器”,在“發送郵件伺服器”中輸入“127.0.0.1”(如圖4),“SMTP郵件伺服器需要身份驗證”也不要選擇上。
圖3
圖4
撰寫發送郵件和我們平時操作一樣,沒有什麼差別。寫好後點發送,郵件會在瞬間發送完畢。
java 代碼部分:
注意:props.put("mail.smtp.auth", "false");
package com
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class EmailTest {
private static final String emailSubject = "你的朋友制作了新場景";
private static final String emailServer = "192.168.0.100";
private static final String emailFrom = "[email protected]";
public static void main(String[] args) {
try {
Properties props = System.getProperties();
props.put("mail.smtp.host", emailServer);
props.put("mail.smtp.auth", "false");
Session session = Session.getInstance(props,
new MyPasswordAuthenticator("[email protected]","sendpassword"));
String email = "[email protected]";
InternetAddress email_addresses[] = InternetAddress
.parse(email, false);
// Create and Initialize message
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(emailFrom));
message.setRecipients(Message.RecipientType.TO,
email_addresses);
message.setSubject(emailSubject, "UTF-8");
System.out.println("Sending email to .. " + email);
// message.setContent(strMessageText, "text/plain");
message.setContent("真的猛士敢于直面慘淡的人生",
"text/html;charset=UTF-8");
// send message
Transport.send(message);
} catch (AddressException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (MessagingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static class MyPasswordAuthenticator extends Authenticator {
String user;
String pw;
public MyPasswordAuthenticator(String username, String password) {
super();
this.user = username;
this.pw = password;
}
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, pw);
}
}
}