Как я посылаю электронное письмо в Java?

Если я не ошибаюсь, то, что вы пытаетесь достичь, называется Липкий Навбар.

С помощью нескольких строк jQuery и события прокрутки довольно легко достичь:

$(document).ready(function() {

    var menu = $('.menu');
    var content = $('.content');
    var origOffsetY = menu.offset().top;

    function scroll() {
        if ($(window).scrollTop() >= origOffsetY) {
            menu.addClass('sticky');
            content.addClass('menu-padding');
        } else {
            menu.removeClass('sticky');
            content.removeClass('menu-padding');
        }
    }

    $(document).scroll();

});

Я сделал для вас быстрый рабочий пример, надеюсь, он поможет: http : //jsfiddle.net/yeco/4EcFf/

Чтобы заставить его работать с Bootstrap , вам нужно только добавить или удалить «navbar-fixed-top» вместо « липкий "класс в jsfiddle.

29
задан Community 23 May 2017 в 12:34
поделиться

7 ответов

Вот мой код для этого:

import javax.mail.*;
import javax.mail.internet.*;

// Set up the SMTP server.
java.util.Properties props = new java.util.Properties();
props.put("mail.smtp.host", "smtp.myisp.com");
Session session = Session.getDefaultInstance(props, null);

// Construct the message
String to = "you@you.com";
String from = "me@me.com";
String subject = "Hello";
Message msg = new MimeMessage(session);
try {
    msg.setFrom(new InternetAddress(from));
    msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
    msg.setSubject(subject);
    msg.setText("Hi,\n\nHow are you?");

    // Send the message.
    Transport.send(msg);
} catch (MessagingException e) {
    // Error.
}

Вы можете получить библиотеки JavaMail от Sun здесь: http://java.sun.com/products/javamail/

31
ответ дан 28 November 2019 в 00:46
поделиться

JavaMail может быть немного неудобным в использовании. Если вам нужно более простое и понятное решение, взгляните на оболочку Spring для JavaMail. Справочные документы находятся здесь:

http://static.springframework.org/spring/docs/2.5.x/reference/mail.html

Однако это означает, что вам нужен Spring в вашем приложении, если это не так. Если это не вариант, вы можете взглянуть на другую оболочку с открытым исходным кодом, такую ​​как simple-java-mail:

simplejavamail.org

В качестве альтернативы вы можете использовать JavaMail напрямую, но два приведенных выше решения представляют собой более простые и понятные способы отправки электронной почты на Java.

23
ответ дан 28 November 2019 в 00:46
поделиться

Чтобы следить за ответом Джона, вот пример отправки почты с использованием simple-java-mail .

Идея в том, что вам не нужно знать обо всех технических (вложенных) частях, из которых состоит электронное письмо. В этом смысле он очень похож на обычную электронную почту Apache, за исключением того, что Simple Java Mail немного проще, чем почтовый API Apache при работе с вложениями и встроенными изображениями. Средство рассылки Spring также работает, но немного неудобно в использовании (например, для него требуется анонимный внутренний класс), и, конечно, вам нужна зависимость от Spring, которая дает вам гораздо больше, чем просто простую библиотеку рассылки, поскольку на ее основе она была разработана быть решением IOC.

Simple Java Mail, кстати, является оболочкой для JavaMail API.

final Email email = new Email();

email.setFromAddress("lollypop", "lolly.pop@somemail.com"); 
email.setSubject("hey");
email.addRecipient("C. Cane", "candycane@candyshop.org", RecipientType.TO);
email.addRecipient("C. Bo", "chocobo@candyshop.org", RecipientType.BCC); 
email.setText("We should meet up! ;)"); 
email.setTextHTML("<img src='cid:wink1'><b>We should meet up!</b><img src='cid:wink2'>");

// embed images and include downloadable attachments 
email.addEmbeddedImage("wink1", imageByteArray, "image/png");
email.addEmbeddedImage("wink2", imageDatesource); 
email.addAttachment("invitation", pdfByteArray, "application/pdf");
email.addAttachment("dresscode", odfDatasource);

new Mailer("smtp.host.com", 25, "username", "password").sendMail(email);
// or alternatively, pass in your own traditional MailSession object.
new Mailer(preconfiguredMailSession).sendMail(email);
9
ответ дан 28 November 2019 в 00:46
поделиться

Еще одна опция, которая обертывает Java Mail API, - это общий адрес электронной почты Apache .

От их Руководство пользователя.

SimpleEmail email = new SimpleEmail();
email.setHostName("mail.myserver.com");
email.addTo("jdoe@somewhere.org", "John Doe");
email.setFrom("me@apache.org", "Me");
email.setSubject("Test message");
email.setMsg("This is a simple test of commons-email");
email.send();
20
ответ дан 28 November 2019 в 00:46
поделиться

Я обычно определяю свой сеанс javamail в разделе GlobalNamingResources файла tomcat server.xml, чтобы мой код не зависел от параметров конфигурации:

<GlobalNamingResources>
    <Resource name="mail/Mail" auth="Container" type="javax.mail.Session"
              mail.smtp.host="localhost"/>
    ...
</GlobalNamingResources>

и я получаю сеанс через JNDI:

    Context context = new InitialContext();
    Session sess = (Session) context.lookup("java:comp/env/mail/Mail");

    MimeMessage message = new MimeMessage(sess);
    message.setFrom(new InternetAddress(from));
    message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
    message.setSubject(subject, "UTF-8");
    message.setText(content, "UTF-8");
    Transport.send(message);
5
ответ дан 28 November 2019 в 00:46
поделиться

JavaMail отлично подходит, если вы можете полагаться на внешний SMTP-сервер. Если же вам нужен собственный SMTP-сервер, обратите внимание на Asprin .

3
ответ дан 28 November 2019 в 00:46
поделиться

использовать библиотеку Java Mail

import javax.mail.*

...

Session mSession = Session.getDefaultInstance(new Properties());
Transport mTransport = null;
mTransport = mSession.getTransport("smtp");
mTransport.connect(cServer, cUser, cPass);
MimeMessage mMessage = new MimeMessage(mSession);
mTransport.sendMessage(mMessage,  mMessage.getAllRecipients());
mTransport.close();

Это усеченная версия кода, который я использую, чтобы приложение отправляло электронные письма. Очевидно, что размещение тела и получателей в сообщении перед его отправкой, вероятно, подойдет вам больше.

Местоположение репозитория maven - artifactId: javax.mail, groupId: mail.

1
ответ дан 28 November 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: