提前感谢您成为我的第二眼。这就是我发送电子邮件的方式,我不知道我改变了什么,打破了它。
import java.io.*;
String msg = "From:sender@em.ail\nTo:\"First Last\"<my@em.ail>\nSubject:Test Mail\n\nBlah Blah Blah\n.\n";
Process p = Runtime.getRuntime().exec(mail);
PrintWriter pw = new PrintWriter(p.getOutputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
pw.print(msg);
while (br.ready()) {System.out.println(br.readLine());}
真正令人困惑的是,如果我打印出 msg 并在运行&#39; sendmail -t&#39;之后将其粘贴到终端窗口中电子邮件发送就好了。我在Windows 7上使用putty而我的IDE是RSA 8.0.4。服务器正在运行某种类型的Solaris。我没有亲自反对安装库来处理邮件,但是在这里安装任何东西都是一项艰巨的任务。
根据每个人的建议,代码现在看起来像这样
import java.io.*;
String msg = "From:sender@em.ail\r\nTo:my@em.ail\r\nSubject:Test Mail\r\n\r\nBLAH BLAH BLAH\r\n.\r\n";
Process p = Runtime.getRuntime().exec(mail);
PrintWriter pw = new PrintWriter(p.getOutputStream());
pw.print(msg);
pw.close();
仍然无法运作。尝试从&#34; getErrorStream()&#34;进行缓冲读取没有回来。
答案 0 :(得分:0)
尝试JavaMail。您需要在类路径中放入一些罐子。您还需要一个smtp服务器凭证。
答案 1 :(得分:0)
试试这个:
function deleteFirst( set:Object, elem:Object ) : Boolean
{
var idx:int = set.indexOf( elem );
if ( idx >= 0 )
{
set.splice( idx, 1 );
return true;
}
return false;
}
或者这个:
import java.io.*;
String msg = "From:sender@em.ail\r\nTo:my@em.ail\r\nSubject:Test Mail\r\n\r\nBLAH BLAH BLAH\r\n.\r\n";
Process p = Runtime.getRuntime().exec(mail);
PrintWriter pw = new PrintWriter(p.getOutputStream());
pw.print(msg);
pw.flush();
pw.close();
答案 2 :(得分:0)
问题结果是字符串邮件中的拼写错误以及 ready()没有做我认为的事情的事实。错字导致错误,其中一个读者阻止。修复拼写错误或删除InputReader修复它,新版本同时执行。