小编sin*_*ash的帖子

com.sun.mail.smtp.SMTPSendFailedException:530 5.7.0必须首先发出STARTTLS命令

我正在创建一个应用程序play 2.2.1并尝试向其添加电子邮件工具.为此我在build.sbt文件中添加了依赖项.但是获取下面的异常说明

我的代码

        String smtpHost = Play.application().configuration().getString("smtp.host");
        Integer smtpPort = Play.application().configuration().getInt("smtp.port");
        String smtpUser = Play.application().configuration().getString("smtp.user");
        String smtpPassword = Play.application().configuration().getString("smtp.password");

        Email mail = new SimpleEmail();
        try {
            mail.setFrom("mymail@gmail.com");
            mail.setSubject("hi");
            mail.setMsg("This is the message");
            mail.addTo("mymail2@gmail.com");
        } catch (Exception e) {
            e.printStackTrace();
        }



        mail.setHostName(smtpHost);
        if (smtpPort != null && smtpPort > 1 && smtpPort < 65536) {
            mail.setSmtpPort(smtpPort);

        }
        if (!smtpUser.isEmpty()) {
            mail.setAuthentication(smtpUser, smtpPassword);
        }


        try {
            mail.send();
        } catch (Exception e) {
            e.printStackTrace();

   }
Run Code Online (Sandbox Code Playgroud)

application.conf中包含的代码

# Email Configuration
smtp.host=smtp.gmail.com
smtp.port=587 …
Run Code Online (Sandbox Code Playgroud)

java email smtp exception playframework

9
推荐指数
1
解决办法
2万
查看次数

SQLException:等待免费可用连接超时

我正在用java构建一个应用程序Play Framework 2.0.4.该应用程序部署在herokucleardb数据库中.

用户不断得到这个偶然的错误:

PlayException: Execution exception [[PersistenceException: java.sql.SQLException: Timed out waiting for a free available connection.]]
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:134)
    at play.core.ActionInvoker$$anonfun$receive$1.apply(Invoker.scala:115)
    at akka.actor.Actor$class.apply(Actor.scala:318)
    at play.core.ActionInvoker.apply(Invoker.scala:113)
    at akka.actor.ActorCell.invoke(ActorCell.scala:626)
    at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:197)
    at akka.dispatch.Mailbox.run(Mailbox.scala:179)
    at akka.dispatch.ForkJoinExecutorConfigurator$MailboxExecutionTask.exec(AbstractDispatcher.scala:516)
    at akka.jsr166y.ForkJoinTask.doExec(ForkJoinTask.java:259)
    at akka.jsr166y.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:975)
    at akka.jsr166y.ForkJoinPool.runWorker(ForkJoinPool.java:1479)
    at akka.jsr166y.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:104)
Caused by: javax.persistence.PersistenceException: java.sql.SQLException: Timed out waiting for a free available connection.
    at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356)
    at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021)
    at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241)
    at com.avaje.ebeaninternal.server.core.DefaultServer.findId(DefaultServer.java:1212)
    at com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.java:1118)
    at com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.java:1105)
    at play.db.ebean.Model$Finder.byId(Model.java:237)
Run Code Online (Sandbox Code Playgroud)

现在情况越来越糟,有时所有用户每次都会得到相同的错误,直到我在heroku中重新启动应用程序.

有任何调试帮助或提示吗?

heroku playframework

7
推荐指数
1
解决办法
1万
查看次数

递归数字的数字总和(直到数字小于10)只有java 8 lambdas

我只是练习lamdas java 8.我的问题如下

将一个整数中的所有数字求和,直到小于10(表示剩下一位数)并检查其是否为1

样本输入1

100
Run Code Online (Sandbox Code Playgroud)

样本输出1

1 // true because its one
Run Code Online (Sandbox Code Playgroud)

样本输入2

55
Run Code Online (Sandbox Code Playgroud)

样本输出2

1     ie  5+5 = 10 then 1+0 = 1 so true
Run Code Online (Sandbox Code Playgroud)

我写了一个代码

System.out.println(Arrays.asList( String.valueOf(number).split("") ).stream()
                                                                    .map(Integer::valueOf)
                                                                    .mapToInt(i->i)
                                                                    .sum() == 1);
Run Code Online (Sandbox Code Playgroud)

它适用于输入1即100但不适用于输入2,即55,我清楚地理解,在第二种情况下10是输出,因为迭代不是递归的.

那么如何才能使这个lambdas表达式递归,以便它也可以在第二种情况下工作呢?我可以使用该lambda表达式创建一个方法并每次调用它,直到返回值<10,但我在想是否在lambdas中有任何方法.

谢谢

java recursion lambda java-8 java-stream

6
推荐指数
1
解决办法
855
查看次数

在ubuntu中通过php脚本发送邮件

我试图通过ubuntu中的php脚本向我的gmail id发送邮件,但无法发送.我的代码

<html>
<head><title>Send mail</title></head>
<body >


<?php
$name=$email=$query="";
if($_SERVER["REQUEST_METHOD"]=="POST"){
 $name = test_input($_POST["name"]);
   $email = test_input($_POST["email"]);
   $query = test_input($_POST["query"]);
 if(mail("abc@gmail.com","Subject",$query,"From: $email\n")){
 echo "email send";
}else{
echo "not send";
}
}
function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>

<form method="post" action="<?php echo ($_SERVER["PHP_SELF"]);?>">
Name:<input type="text" name="name" required>


  Email id:<input type="email" name="email" required>
    Query:<textarea name="query" row="5" cols="40" required></textarea>

   <input type="submit" value="Submit">

    </form>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我配置了我的php.ini

[mail function]
; For Win32 only.
; http://php.net/smtp …
Run Code Online (Sandbox Code Playgroud)

php linux email

5
推荐指数
1
解决办法
964
查看次数

Mapstruct - 在响应中发送具有(一对多关系)的嵌套实体

我有 2 个实体CallRecordsCallRecordOperators它们具有一对多的关系,如下所示

 public class CallRecords {

    @Id
    @Column(name = "id", unique = true)
    private String id;

    @Column(columnDefinition = "varchar(255) default ''")
    private String callerNumber = "";

    @OneToMany(mappedBy="callrecord")
    private List<CallRecordOperators> callRecordOperators = new ArrayList<CallRecordOperators>();


   //getter setters
}

public class CallRecordOperators {

    @Id
    @Column(name = "id", length = 50, unique = true, nullable = false, insertable = false, updatable = false)
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @JsonIgnore
    @ManyToOne
    @JoinColumn(name = "callRecordId")
    private CallRecords callrecord; …
Run Code Online (Sandbox Code Playgroud)

java hibernate dto one-to-many mapstruct

5
推荐指数
1
解决办法
1万
查看次数

禁用<td>上的onclick事件仅在单击文本时有效,但在单击td中的其他区域时无效(ie10,ie11 issue)

我在下面有这个 HTML代码.

<table border="1" style="width:100%">
 <tr> <th>Col</th></tr>
  <tr><td onclick="alert('1');" disabled="disabled"><label>One<br></label></td></tr>
  <tr><td onclick="alert('2');" disabled="disabled"><label>Two<br></label></td></tr>
  <tr><td onclick="alert('3');" disabled="disabled"><label><br></label></td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)

以上代码适用于Chrome和Microsoft Edge意味着它会在所有3个tds中点击td标记内的任何位置时显示警报.
但是在IE10中,IE11仅在td包含一些数据时起作用,就像在上面的代码中第3行不提供警报一样,对于其他tds它仅在我们点击文本时才有效,而不是在点击除文本以外的td内的任何其他区域时.

这段代码是我的大型应用程序的一部分.我只是想知道这是IE中的一个已知错误,如果是,任何人都可以提供该错误的链接.
或者我错过了导致问题的代码.由于它是大型应用程序的一部分,我想添加更少的代码,以便它不会影响其余的应用程序.

任何帮助,将不胜感激

html javascript internet-explorer onclick

5
推荐指数
1
解决办法
497
查看次数

受检者与模式类型不兼容;找到:package.SomeObject 所需:单位

我正在尝试 scala 中的文件搜索程序。

文件检查器.scala

package fileSearcher

import sun.org.mozilla.javascript.internal.ast.Yield

class FilterChecker(filter:String) {

def matches(content: String) = content contains filter

def findMatchedFiles(fileObjects: List[IOObject]) =

  for(fileObject <- fileObjects
      if(fileObject.isInstanceOf[FileObject])
      if(matches(fileObject.name)))
    yield fileObject

}

object FilterChecker{

  def apply(filter: String)=new FilterChecker(filter)
}
Run Code Online (Sandbox Code Playgroud)

IOObject.scala

package fileSearcher
import java.io.File
trait IOObject {
  val file:File
  val name= file.getName()
}

case class FileObject(file: File)extends IOObject
case class DirectoryObject(file: File)extends IOObject
Run Code Online (Sandbox Code Playgroud)

文件转换器.scala

package fileSearcher

import java.io.File

object FileConverter {
def convertToIOObject(file: File){
  if(file.isDirectory()) DirectoryObject(file)
  else FileObject(file)
}
}
Run Code Online (Sandbox Code Playgroud)

匹配器.scala

package …
Run Code Online (Sandbox Code Playgroud)

scala case pattern-matching sbt

4
推荐指数
1
解决办法
6518
查看次数

如何检查arraylist是否包含字符串

我有这个代码,找到女性艺术家,男性艺术家或乐队的数量 -

 import java.util.*;


 public class FindGender {


    public static void main(String[] args) {
        // TODO code application logic here
        ArrayList < String > artists = new ArrayList < > ();
        int mnum = 0, fnum = 0, bnum = 0;
        artists.add("Beyonce (f)");
        artists.add("Drake (m)");
        artists.add("Madonna (f)");
        artists.add("Michael Jackson (m)");
        artists.add("Porcupine Tree (b)");
        artists.add("Opeth (b)");
        artists.add("FallOut Boy (b)");
        artists.add("Rick Ross {m}");
        artists.add("Chris Brown (m)");
        if (artists.contains("(b)")) bnum++;
        if (artists.contains("(m)")) mnum++;
        if (artists.contains("(f)")) fnum++;
        System.out.println("The number of male artists is: " …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
3
解决办法
2019
查看次数

使用部署在Google App Engine上的PHP应用程序发送邮件

我试图从部署在GAE上的PHP应用程序发送电子邮件,但无法发送.

我的PHP代码:

<?php
use google\appengine\api\mail\Message;

$name=$email=$query="";

if($_SERVER["REQUEST_METHOD"]=="POST"){

   $name = $_POST["name"];
   $email = $_POST["email"];
   $query = $_POST["query"];

  require_once 'google/appengine/api/mail/Message.php';
    $mail_options = [
    "sender" => $email,
    "to" => "abc@gmail.com",
    "subject" => "Subject",
    "textBody" => $query,
];

try {
    $message = new Message($mail_options);
    $message->send();
} catch (InvalidArgumentException $e) {
    echo "not send";

}?> 
Run Code Online (Sandbox Code Playgroud)

我的日志

INFO     2014-07-31 21:40:31,711 mail_stub.py:142] MailService.Send
  From: bca@gmail.com
  To: abc0@gmail.com
  Subject: Subject
  Body:
    Content-type: text/plain
    Data length: 3
INFO     2014-07-31 21:40:31,711 mail_stub.py:305] You are not currently sending out real email. …
Run Code Online (Sandbox Code Playgroud)

php email google-app-engine

3
推荐指数
1
解决办法
1766
查看次数

仅使用java8 lambdas将List <MyObject>转换为List <List <String >>

我有List<User>哪里User是具有可变的一类id,name,date.我只是想创建一个List<List<String>>与它,使得它仅包含从第一list.My代码名称和日期

import java.util.*;
import java.util.stream.*;
public class User
{
  int id;
  String name;
  Date date;

  public User(int id,String name,Date date){
    this.id=id;
    this.name=name;
    this.date=date;

  }

  public static void main(String[] args)
  {
    User one=new User(1,"a",new Date());
    User two=new User(2,"b",new Date());
    User three=new User(3,"c",new Date());

    List<User> userList=Arrays.asList(one,two,three);

    System.out.println(userList);

    List<List<String>> stringList = IntStream.range(0,userList.size())
                                             .maptoObj(i -> Array.asList(userList.get(i).name,userList.get(i).date))
                                             .collect(toList);
    System.out.print(stringList);

  }
}
Run Code Online (Sandbox Code Playgroud)

我似乎无法弄清楚当我使用collect()它时我怎么能实现它说无法在收集时找到符号.有什么方法可以List<List<String>>包含名称和日期列表List<User>

我也试过了

List<List<String>> stringList = IntStream.range(0,userList.size())
                                         .map(i -> Arrays.asList(userList.get(i).name,userList.get(i).date.toString()))
                                         .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

但它给了我 …

java collections lambda list java-8

3
推荐指数
1
解决办法
5763
查看次数