日期:2014-05-20 浏览次数:20997 次
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class Test {
    public static void doSomething() {
        SimpleEmail email = new SimpleEmail();
        email.setHostName("smtp.126.com");
        email.setAuthentication("Tom", "password"); // 这里是需要验证的!!
        try {
            email.addTo("JohnDoe@126.com", "John Doe");
            email.setFrom("Tom@126.com", "Tom");
            email.setSubject("ble=="java.lang.Integer">
            <column name="ID" />
            <generator class="native" />
        </id>
        <many-to-one name="account" class="vo.Account" fetch="select">
            <column name="AccountId" length="20" not-null="true" />
        </many-to-one>
------解决方案--------------------
public class Mail {
    public boolean sendMail(String subject, String body, String to) {
        try {
            SmtpAuth sa = new SmtpAuth(); // 密码验证
            sa.getuserinfo("huiccsu", "hui525");
            Properties props = System.getProperties();
            props.put("mail.smtp.auth", "true");
            props.put("mail.smtp.host", "smtp.sina.com");
            Session sess = Session.getInstance(props, sa);
            sess.setDebug(true);// 调试信息
            Message msg = new MimeMessage(sess);
            msg
                    .setDataHandler(new DataHandler(body,
                            "text/html;charset=gb2312"));
            msg.setFrom(new InternetAddress("huiccsu@sina.com", "me"));
            msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(
                    to, false));
            msg.setSubject(subject);
            msg.setSentDate(new Date());
            msg.setText(body);
            Transport.send(msg);
            return true;
        } catch (Exception e) {
            return false;
        }
    }
public static void main(String[] args) {
        Mail m = new Mail();
        m.sendMail("测试一下java 程序",
                "上联:爱已欠费,情已停机。缘份不在服务区.下联:思也痛苦,想也伤心。何日缴费再开机?横批:梦想成真",
                "282564032@qq.com");
    }
------解决方案--------------------
问题应该是//se.setAuthentication("sh", "sh"); 这句话被注释掉的原因.
你发邮件的过程,应该是你将邮件投递给邮局,邮局会帮你转发邮件到目的地的.
现在,估计你的电子邮局(mail.host.cn),对于向内部用户(@6ren.com.cn域名下的用户)发送邮件的时候不对数据源做身份验证,但若向外发送邮件要有身份验证才可以.
在这种情况下,应该把你邮箱的账户,密码设置进去,让邮局对你进行身份验证,这样,就可以了.
以上是我的跟人意见,仅供参考.
谢谢.