天天看点

通过SMTP SERVER 无需身份验证发送邮件

建立SMTP服务器发送匿名邮件

1.       系统:Windows XP/2000

2.       安装设置服务端

  Windows XP和2000本身就拥有构件SMTP服务器的功能,只是一般还没有安装。选择“控制面板→添加/删除程序→添加/删除Windows组件”,弹出“Windows组件向导”对话框,在其中双击“Internet信息服务(IIS)”项,就会打开详细选择项,选中“SMTP Service”,按“确定”,插入Windows XP安装盘进行安装(如图1)。

通过SMTP SERVER 无需身份验证发送邮件

图1

  安装好SMTP服务器后,选择“控制面板→性能和维护→管理工具→Internet信息服务”打开Internet信息服务设置窗口,在窗口左侧点击本地计算机名,展开本地计算机目录,可以看到有两个分支“Wed站点”和“默认SMTP虚拟服务器”。在“默认SMTP虚拟服务器”上点击鼠标右键选择“属性”,打开“默认SMTP虚拟服务器属性”窗口。

  “常规”选项卡主要设置IP地址,单击IP地址下拉项选择“127.0.0.1”,表示指向本地计算机IP地址,其他项使用默认即可。如果你是局域网接入,拥有固定IP地址,那么IP地址就应该选择相应的地址(如图2)。

通过SMTP SERVER 无需身份验证发送邮件

图2

  “访问”选项卡中设置访问权限。单击“身份验证”,选择“匿名访问”,表示任何用户都可以发送,其他两项不用选择;单击“连接控制”中的“连接”和“中段限制”中的“中断”,选中“仅以下列表除外”,表示可以许接入所有用户的访问。

  “邮件”选项卡中设置邮件传输条件及限制,“限制邮件大小为”等四个选项可以使用默认值,无须更改;

  “将未传递报告的副本发送到”可将发送不成功的邮件返回发件人,并且写明不成功的原因;“死信目录”设置没有发送成功的邮件被存放的位置。

  “传输”选项中设置邮件传递时间,这里不用修改,使用默认值;“LDAP路由”选项用来指定服务器使用的目录服务器标识和属性,这里也不用启动它。

  “安全”选项中设置使用发送服务器的有权用户,默认用户是“Administrators”,你可以单击“添加”添加使用用户。

  一切设置好后,你就拥护了自己的邮件发送服务器了!下面我们来看看在Outlook Express和Foxmail中如何设置使用自己的SMTP来发信。

3. 设置客户端软件

  打开Outlook Express,选择“工具→账号→邮件”,选中帐号点“属性”,在“服务器”标签下的“发送邮件(SMTP)”中输入“127.0.0.1”,即本机地址(如图3),“我的服务器需要身份验证”不选择。

  在Foxmail中选择需要设置本机发信的帐号,然后选择“帐号→属性→邮件服务器”,在“发送邮件服务器”中输入“127.0.0.1”(如图4),“SMTP邮件服务器需要身份验证”也不要选择上。

通过SMTP SERVER 无需身份验证发送邮件

图3

通过SMTP SERVER 无需身份验证发送邮件

图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);

  }

 }

}