2010-09-15 169 views
-1

我在我的jsp中有一個文本框,並且想要發送一封電子郵件到他/她的電子郵件進入的receipent在文本框中。發送電子郵件到文本框中的文本「電子郵件」

請你指導我如何做到這一點。

我剛剛簽出此代碼:

<html> 
<head> 
    <title>mailto Example</title> 
</head> 

<body> 
<form action="mailto:[email protected]" method="post" enctype="text/plain" > 
FirstName:<input type="text" name="FirstName"> 
Email:<input type="text" name="Email"> 
<input type="submit" name="submit" value="Submit"> 
</form> 
</body> 
</html> 
+0

要打開一個本地用戶系統上的電子郵件客戶端還是要從服務器發送電子郵件? – 2010-09-15 10:04:05

回答

0

您需要將表單發佈到servlet,並從servlet執行此方法發送郵件。對servlet的 的形式應該是

<form action="sendMail.do" method="post" enctype="text/plain" > 
FirstName:<input type="text" name="FirstName"> 
Email:<input type="text" name="Email"> 
<input type="submit" name="submit" value="Submit"> 
</form> 

下面是代碼從Java發送電子郵件,請在web.xml中正確映射
對於servlet的教程檢查here

import javax.mail.*; 
import javax.mail.internet.*; 
import java.util.*; 
public void postMail(String recipients[ ], String subject, String message , String from) throws MessagingException 
{ 
    boolean debug = false; 

    //Set the host smtp address 
    Properties props = new Properties(); 
    props.put("mail.smtp.host", "smtp.jcom.net"); 

    // create some properties and get the default Session 
    Session session = Session.getDefaultInstance(props, null); 
    session.setDebug(debug); 

    // create a message 
    Message msg = new MimeMessage(session); 

    // set the from and to address 
    InternetAddress addressFrom = new InternetAddress(from); 
    msg.setFrom(addressFrom); 

    InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
    for (int i = 0; i < recipients.length; i++) 
    { 
     addressTo[i] = new InternetAddress(recipients[i]); 
    } 
    msg.setRecipients(Message.RecipientType.TO, addressTo); 


    // Optional : You can also set your custom headers in the Email if you Want 
    msg.addHeader("MyHeaderName", "myHeaderValue"); 

    // Setting the Subject and Content Type 
    msg.setSubject(subject); 
    msg.setContent(message, "text/plain"); 
    Transport.send(msg); 
} 
+0

我可以在同一個jsp中做到這一點嗎?只是爲了測試 – maas 2010-09-15 10:16:20

+0

你可以,我不會推薦它,最好把它放在Servlet上, – 2010-09-15 10:30:26

0

常見的方式做到這一點是有一些服務器端腳本,例如在PHP中,這將採取形式的價值觀,創建一個電子郵件併發送它。

表單數據當然可以通過javascript/ajax發送,但我認爲在使用php腳本時不需要。

相關問題